PHP에서 strtotime 함수를 사용하면 시간 형식의 문자열을 타임스탬프(초 단위)로 변환할 수 있습니다. 이 함수를 활용하면 여러 개의 시간 값이 담긴 배열의 총 시간을 손쉽게 계산할 수 있습니다. 예제 코드 <?php $time_arr = [ 00:12:56, 10:11:12, 24:12:44, 50:51:52, 10:10:10 ]; $time = strtotime(00:00:00); $total_time = 0; foreach( $time_arr as $ele ) { $sec_time = strt
웹 서비스에서는 게시글이나 댓글이 작성된 시각을 3분 전, 2시간 전처럼 표시하는 경우가 많습니다. 이번 글에서는 주어진 타임스탬프(timestamp)를 이러한 상대 시간 형식으로 변환하는 PHP 프로그램을 소개합니다.예제 코드<?php function to_time_ago( $time ) { $difference = time() - $time; if( $difference < 1 ) { return 'les
PHP 스크립트의 실행 시간을 계산하려면 microtime 함수를 활용하면 됩니다. 아래 예제 코드를 통해 그 방법을 살펴보겠습니다.예제<?php $start = microtime(true); $val=1; for($i = 1; $i <=1500; $i++) { $val++; } $end = microtime(true); $exec_time = ($end - $start); echo "The execution time of the PHP script is : ".$exec_time
PHP에서 문자열에 섞여 있는 특수 문자나 기호 등 영숫자(alphanumeric)가 아닌 문자를 제거하는 가장 일반적인 방법은 preg_replace 함수와 정규표현식을 조합하는 것입니다. 아래에서 두 가지 대표적인 방식을 예제와 함께 살펴보겠습니다. 예제 1: 문자 클래스 [^a-z0-9] 사용하기 <?php $my_str = Thisis!@sample*on&ly)#$; $my_str = preg_replace(/[^a-z0-9]/i, , $my_str); echo 영숫자가 아닌 문자를 제거한 결과 문자열: ; ec
PHP에서는 preg_split 또는 explode 함수를 사용하여 쉼표로 구분된 문자열을 값 배열로 손쉽게 분할할 수 있습니다. 두 함수의 실제 동작 방식을 예제 코드와 함께 살펴보겠습니다.예제 코드<?php $my_string = 456,789,23, 4, 019; $my_str_arr = preg_split (/,/, $my_string); print_r(The array is ); print_r($my_str_arr); $my_string = 00, 876, 5432, 1234, 0; $my_str_arr = explo
PHP를 사용하면 간단한 함수 하나만으로 특정 숫자가 소수(prime number)인지 아닌지 쉽게 판별할 수 있습니다. 이번 글에서는 직접 작성한 예제 코드를 통해 소수 판별 로직을 단계별로 살펴보겠습니다. 소수 판별 원리 소수란 1과 자기 자신 외에는 약수를 가지지 않는 1보다 큰 자연수입니다. 따라서 어떤 숫자가 2부터 그 숫자의 절반까지의 값으로 나누어 떨어지지 않는다면, 그 숫자는 소수라고 할 수 있습니다. 예제 코드 <?php function check_prime($num) { if ($num == 1)
PHP에서 주어진 연도가 윤년(leap year)인지 아닌지를 판별하는 코드는 다음과 같습니다.예제 코드<?php function year_check($my_year){ if ($my_year % 400 == 0) print(It is a leap year); else if ($my_year % 100 == 0) pri
주어진 숫자의 전체 약수 개수가 짝수인지 홀수인지 확인하고 싶다면, 아래와 같이 PHP 코드를 작성하면 됩니다. 예제 <?php function divisor_count($my_val) { $my_count = 0; for ($i = 1; $i <= sqrt($my_val) + 1; $i++) { if ($my_val % $i == 0) $my_count += ($my_val / $i == $i)? 1 : 2; } if ($my_count % 2 == 0)
숫자의 모든 자릿수가 그 숫자 자신을 나누어떨어뜨릴 수 있는지 확인하는 문제는 코딩 테스트에서 자주 등장하는 유형입니다. 예를 들어 128의 자릿수는 1, 2, 8이며, 128은 세 숫자 모두로 나누어떨어지므로 참(true)입니다. 반면 255는 자릿수 2로 나누어떨어지지 않기 때문에 거짓(false)입니다. 이 글에서는 PHP로 이 문제를 해결하는 방법을 예제 코드와 함께 단계별로 살펴보겠습니다. PHP 코드 예제 <?php function divisibility_check($num, $digit) {
이 글에서는 PHP를 활용해 홀수인 자연수들의 세제곱 합을 구하는 프로그램을 만들어 보겠습니다. 예를 들어 처음 8개의 홀수인 자연수는 1, 3, 5, 7, 9, 11, 13, 15이며, 각 숫자를 세제곱한 값(1, 27, 125, 343, 729, 1331, 2197, 3375)을 모두 더하면 8128이라는 결과를 얻을 수 있습니다.예제 코드<?phpfunction sum_of_cubes_odd($val){ $init_sum = 0; $coun
짝수에 해당하는 처음 n개의 자연수, 즉 2, 4, 6, …, 2n의 평균을 구하는 PHP 프로그램을 살펴보겠습니다.예제<?php function even_nums_avg($val) { return $val + 1; } $val = 11; print_r("짝수인 처음 n개의 자연수의 평균은 "); echo(even_nums_avg($val)); ?>출력짝수인 처음 n개의 자연수의 평균은 12코드 설명먼저 even_nums_avg라는 이름의 함수를 정의합니다. 이
이 글에서는 PHP를 사용하여 처음 n개의 자연수 각각의 5제곱 값을 모두 더한 합계를 구하는 방법을 알아봅니다. 반복문을 활용한 기본적인 구현 예제와 함께 실행 결과, 그리고 수학적 공식까지 함께 살펴보겠습니다.구현 예제<?php function sum_of_fifth_pow($val) { $init_sum = 0; for ($i = 1; $i <= $val; $i++) $init_sum = $init_sum + ($i * $i * $i * $i * $i); return $init_s
특정 숫자 k의 거듭제곱에 해당하지 않는 처음 n개의 자연수(1부터 n까지)의 합을 구하는 프로그램입니다. 핵심 아이디어는 간단합니다. 먼저 1부터 n까지의 전체 합을 구한 뒤, 그 범위 안에 포함되는 k의 거듭제곱 값들(k, k², k³, ...)을 차례대로 빼주면 됩니다. 예제 코드 <?php function sum_of_nums($n_val, $k_val) { $tot_sum = ($n_val * ($n_val + 1)) / 2; $pow_val = $k_val; while ($pow_val <
처음 n개의 자연수 세제곱의 합을 구하는 것은 프로그래밍에서 자주 접하는 기본적인 문제입니다. PHP에서는 반복문을 활용해 손쉽게 해결할 수 있으며, 수학 공식을 사용하면 더욱 효율적인 처리도 가능합니다.반복문을 이용한 구현아래는 처음 n개의 자연수 세제곱의 합을 구하는 PHP 코드입니다.예제 코드<?php function sum_of_cubes($val) { $init_sum = 0; for ($x = 1; $x <= $val; $x++) $init_sum += $x * $x * $x;
주어진 숫자 수열에 특정 숫자가 포함되어 있는지 확인해야 하는 경우는 프로그래밍에서 자주 마주치는 문제입니다. 예를 들어, 11부터 시작하여 2씩 증가하는 수열(11, 13, 15, ..., 99)에 99가 속하는지 판별하는 것이 대표적인 예입니다. 이러한 문제는 PHP의 간단한 함수 하나만으로 손쉽게 해결할 수 있습니다. 예제 코드 <?php function contains_in_sequence($val_1, $val_2, $val_3) { if ($val_1 == $val_2) &
어떤 숫자 x가 주어졌을 때, 그 숫자로 나누어 떨어지는 팩토리얼(계승)을 가진 첫 번째 자연수를 찾아야 하는 경우가 있습니다. 예를 들어 x가 16이라면 1!부터 5!까지는 16으로 나누어 떨어지지 않지만, 6! = 720 = 16 × 45이므로 정답은 6이 됩니다.이를 구현하는 PHP 코드는 다음과 같습니다.예제 코드<?php function factorial_num($x_val) { $fact_num = 1; for ($i = 1; ; $i++) { $fact_num = $fact_nu
배열에 저장된 값 중에서 연속된 숫자 시퀀스를 기준으로 빠져 있는 숫자(누락된 숫자)를 찾아야 하는 경우가 생각보다 많습니다. 예를 들어 배열이 [6, 7, 9]라면, 1부터 시작하는 연속된 수열의 관점에서 볼 때 1, 2, 3, 4, 5가 모두 빠져 있는 셈입니다. 이번 글에서는 PHP로 이런 누락된 숫자를 찾아 출력하는 프로그램을 예제와 함께 살펴보겠습니다. 예제 코드 <?php function missing_nums($my_arr, $arr_len, $val) { sort($m
숫자 x 또는 숫자 y로 나누어지는 처음 n개의 자연수의 합을 구하려면 등차수열의 합 공식과 포함-배제 원리를 활용하면 됩니다. 해당 코드는 다음과 같습니다.예제<?php function sum_of_nums($n_val, $x_val, $y_val) { $val_1; $val_2; $val_3; $val_1 = floor(((int)$n_val / $x_val)) * (2 * $x_val + (int)((int)$n_val / $x_val - 1) * $X) / 2; $val_2 = floor(((int
반복문 없이 간단한 수학 공식만으로도 주어진 범위 안에 있는 홀수들의 합을 손쉽게 구할 수 있습니다. 여기서 활용되는 핵심 원리는 처음 n개의 홀수(1, 3, 5, ...)의 합은 n²과 같다는 사실입니다. 아래 예제 코드를 통해 확인해 보겠습니다.예제<?php function odd_num_sum($val) { $entries = (int)(($val + 1) / 2); $sum = $entries * $entries;  
두 숫자의 반복 뺄셈(repeated subtraction)을 계산하는 PHP 코드는 다음과 같습니다.예제<?php function repeated_sub($val_1, $val_2) { if ($val_1 % $val_2 == 0) return floor(((int)$val_1 / $val_2)); return floor(((int)$val_1 / $val_2) + repeated_sub($val_2, $val_1 % $val_2)); } $