반응형
사이트명 : 프로그래머스(Programmers)
문제명 : 숫자의 표현
언어 : 자바(Java)
문제만 보면 뭔가 어려워 보이는데
설명을 어렵게 보이게 해놔서 어려운거지
실상은 간단하다
1부터 n까지 다 더해봐서
n을 만들 수 있는 경우가 몇개나 되냐는 것이다
1+2+3+4+5 이런 식으로 15를 만들 수 있는데
다음에는 2부터 시작해서 15가 되나.. 이런 식으로 15까지 반복해주면 된다
내 풀이방법은 아래와 같은데
while문은 1부터 n까지 돌려주고
while 안에 for문은 while 증감값(j) 부터 시작해서 n까지 돌려주는데
이렇게 1+2+3+4+5... 식으로 더해서 n이 나오면 answer 갯수를 올려주고
n보다 커져버리면 break 시켜서 while을 반복한다
이렇게 돌리고 돌려서 while문이 끝나면
n이 나온 횟수가 모두 answer 안에 들어가게 된다
마지막으로 프로그래머스에 바로 적용 가능한 코드는 아래와 같다
class Solution {
public int solution(int n) {
int answer = 0;
int counter = 0;
int j = 1;
while(j <= n) {
for(int i = j; i<=n; i++) {
counter = counter + i;
if(counter == n) {
answer++;
} else if(counter > n) {
counter = 0;
break;
}
}
j++;
}
return answer;
}
}
반응형
'Language > 알고리즘 문제풀이' 카테고리의 다른 글
프로그래머스 위장(Java) (0) | 2019.09.18 |
---|---|
프로그래머스 전화번호 목록(Java) (0) | 2019.09.17 |
프로그래머스 최솟값 만들기(Java) (0) | 2019.09.17 |
프로그래머스 올바른 괄호(Java) (0) | 2019.09.17 |
프로그래머스 핸드폰 번호 가리기(Java) (0) | 2019.09.16 |
댓글