728x90
https://programmers.co.kr/learn/courses/30/lessons/12924
오늘의 코드 리뷰는 프로그래머스 숫자의 표현
입력받은 자연수 n을 연속된 숫자로 표현하는 방법이 몇가지인가 구하는 문제
class Solution {
public int solution(int n) {
int answer=0, cnt=1;
n--;
while(n>0){
cnt++;
n=n-cnt;
if(n%cnt==0) answer++;
}
return answer+1;
}
}
이 문제는 제가 이중 포문으로 1부터 더해서 풀어보려고 했는데 시간초과 오류나서
이전에 구매해서 듣던 알고리즘 인강에 비슷한 문제가 있길래 참고해서 풀었어요
강사님이 ㅠㅠ 여러분들 이 문제 보자마자 이중포문 돌려서 1부터 더해가면서 풀었죠? 하는데 뜨끔ㅋㅋㅋ
이 문제는 인강에서 구하고자 하는 방갯수?로 계속 나누면서 떨어지면 가능한 문제라고 설명해주셨어요
처음에 while문 안에서 cnt가 2일때 n-cnt를 해주고 나누어 떨어지면 연속된 두 숫자로 구현 가능하다 라는 코드네요!
제가 인강 내용을 그대로 옮길수가 없어서 자세하게 설명은 못드리지만^^;; 강사님이 잘 설명해주셔서 바로 풀어볼 수 있었네요
프로그래머스 문제는 자기자신 숫자도 포함이기 때문에 최종 정답에 +1해줬습니다.
'공부 > 코딩테스트' 카테고리의 다른 글
(1일 1코딩)프로그래머스 서울에서 김서방 찾기[JAVA] (0) | 2021.07.30 |
---|---|
(1일 1코딩)프로그래머스 소수 찾기[JAVA] (0) | 2021.07.30 |
(1일 1코딩)프로그래머스 문자열을 정수로 바꾸기[JAVA] (0) | 2021.07.30 |
(1일 1코딩)프로그래머스 약수의 합[JAVA] (0) | 2021.07.30 |
(1일 1코딩)프로그래머스 이상한 문자 만들기[JAVA] (0) | 2021.07.30 |