| 문제
정수 num1, num2가 매개변수로 주어질 때,
num1을 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해 주세요.
| 제한사항
0 < num1 ≤ 100
0 < num2 ≤ 100
| 입출력 예
num1 | num2 | result |
3 | 2 | 1 |
10 | 5 | 0 |
| 풀이1
public int solution01(int num1, int num2) {
int answer = -1;
answer = num1 % num2;
return answer;
}
| 풀이2
public int solution02(int num1, int num2) {
return num1 % num2;
}
| 풀이3
public int solution03(int num1, int num2) {
while(num1 >= num2) {
num1 = num1 - num2;
}
int answer = num1;
return answer;
}
| 해설
나머지를 구하는 연산은 워낙 간단하기 때문에 크게 어려운 문제는 아닙니다.
그래서 살짝 변주를 주어보았어요.
나머지는 하나의 수에서 다른 수의 값을 무한히 빼주는 행위와 같지 않을까라는 생각에서
나누기에 사용되는 값이 나누기의 대상보다 작거나 같아질 때까지
계속해서 빼기를 하는 방식의 알고리즘을 구성해 보았습니다.
비록 0.03 정도로 아주 작은 차이이기는 하지만
직접적으로 나머지를 사용하는 풀이에서는 0.05초였던 속도가
빼기로 바꿨을 경우 0.02초로 줄어드는 유의미한 현상을 확인할 수 있었어요.
나머지 대신 빼기를 사용하는 것도 좋은 방법인 것 같습니다.
'개발 > 개발 공부' 카테고리의 다른 글
[프로그래머스] 코딩테스트 입문 : 최빈값 구하기 (0) | 2024.08.28 |
---|---|
[프로그래머스] 코딩테스트 입문 : 중앙값 구하기 (2) | 2024.08.28 |
[프로그래머스] 코딩테스트 입문 : 배열 두배 만들기 (0) | 2024.08.27 |
[프로그래머스] 코딩테스트 입문 : 분수의 덧셈 (0) | 2024.08.26 |
[프로그래머스] 코딩테스트 입문 : 두 수의 나눗셈 (0) | 2024.08.25 |
댓글