반응형
문제해결은 여기서!
https://school.programmers.co.kr/learn/courses/30/lessons/12924
문제설명
더보기
Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.
- 1 + 2 + 3 + 4 + 5 = 15
- 4 + 5 + 6 = 15
- 7 + 8 = 15
- 15 = 15
자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.
제한사항
- n은 10,000 이하의 자연수 입니다.
입출력 예
nresult15 | 4 |
입출력 예 설명
입출력 예#1
문제의 예시와 같습니다.
※ 공지 - 2022년 3월 11일 테스트케이스가 추가되었습니다.
문제해결keyPoint
- 뭐냐.. 전혀 감이 안잡히네...
- 연속된 수가 1씩 차이난다. -> 완전탐색?..
- 수학적 지식이 필요하다.
20220915 1차시도
더보기
잠깐 고민하닥.. 카페시간이 다되서 쫓겨났다. 다시 고민해보려 했으나 귀차니즘으로 하지 못함 ㅎ 풀이나 보자... ㅠㅠㅠㅠㅠ
class Solution {
public int solution(int n) {
/**
* 1. 등차수열의 합 공식을 이용해보자.
* -> 등차수열의 합 = n * (i+p[n])/2 (i는 순열의 첫항, n은 마지막항이다, p[n]은 마지막 항의 숫자다.)
* -> 문제에서는 연속한 수이므로 등차가 1인 등차수열이다.
* -> 즉, 마지막항의 값과 마지막항이 같다.
*
* 2. 이것도 뭔가 DFS로 풀수 있을것 같은데?...
*/
int answer = 0;
for(int i=1; i<n; i++){
if(i == 2*i-1){
answer++;
}
}
return answer;
}
}
20220915 풀이참고
더보기
이건... 내가 딱? 고민하던 풀이방법이었는데, 예전 테스트 케이스에서 통과되어 나와있어 올린다... 이정도라도 해볼수 있었는데 너무 아쉽군...
class Solution {
public int solution(int num) {
/**
* 1. 등차수열의 합 공식을 이용해보자.
* -> 등차수열의 합 = n * (i+p[n])/2 (i는 순열의 첫항, n은 마지막항이다, p[n]은 마지막 항의 숫자다.)
* -> 문제에서는 연속한 수이므로 등차가 1인 등차수열이다.
* -> 즉, 마지막항의 값과 마지막항이 같다.
*
* 2. 이것도 뭔가 DFS로 풀수 있을것 같은데?...
*/
int answer = 0;
int sum;
for(int i = 1 ; i <= num ; i++) {
sum = 0;
for(int j = i ; j <= num ; j++) {
sum += j;
if(sum == num) {
answer++;
j = num+1;
}
}
}
return answer;
}
}
20220915 풀이참고 2번째
더보기
놀랍게도 break문만 걸어줘도 통과할 수 있다. ㄷㄷ... 정말 내가 생각했던 거랑 똑같네.. for문이 두개들어가서 걍 실패 뜰줄 알았는데 ㅋㅋㅋ
class Solution {
public int solution(int num) {
/**
* 1. 등차수열의 합 공식을 이용해보자.
* -> 등차수열의 합 = n * (i+p[n])/2 (i는 순열의 첫항, n은 마지막항이다, p[n]은 마지막 항의 숫자다.)
* -> 문제에서는 연속한 수이므로 등차가 1인 등차수열이다.
* -> 즉, 마지막항의 값과 마지막항이 같다.
*
* 2. 이것도 뭔가 DFS로 풀수 있을것 같은데?...
*/
int answer = 0;
int sum;
for(int i = 1 ; i <= num ; i++) {
sum = 0;
for(int j = i ; j <= num ; j++) {
sum += j;
if(sum == num) {
answer++;
j = num+1;
break;
}
if(sum>num){
break;
}
}
}
return answer;
}
}
반응형
'알고리즘' 카테고리의 다른 글
프로그래머스[12945] - 피보나치 수열(lv2) (0) | 2022.09.19 |
---|---|
프로그래머스[17677] - 뉴스 클러스터링(lv2) (0) | 2022.09.16 |
프로그래머스[43165] - 타겟 넘버(lv2) (0) | 2022.09.14 |
프로그래머스[12909] - 올바른 괄호(lv2) (0) | 2022.09.14 |
프로그래머스[12914] - 멀리 뛰기(lv2) (0) | 2022.09.12 |