(1).백준 3943번 헤일스톤 수열은 뭔지 모르겠지만 콜라츠 추측인지 뭔가가 들어갔다고 하는데
일단 나눈 값이 홀수면 다시 곱해져서 더 커지기 떄문에
초반에는 그냥 나눴을 때 홀수가 되는 짝수인 경우만 테스트하고 넘겼는데
막상 오답이 나와서 확인해보니 아래아랫단계에서 홀수가 계속 되면 더 커질 수도 있기 때문에
결론적으로는 모든 값을 확인해야 했다.
while문 내부에서 max를 체크하게 해서 문제를 해결했는데
왜 이런 구현 문제가 있는지는 의문이고
이게 실제로 while을 사용하기 때문에 로직에 대한 이해가 없으면 터질 수 있을 것 같은데
왜 헤일스톤수열이라는 추측하기 애매한 수열을 가져왔는지는 모르겠다.
const input = `4
1
3
9999
100000`.split('\n').map(Number)
const result = []
for(let i = 1 ; i < input.length ; i++){
let n = input[i]
let max = n
while(n != 1){
if(n % 2 === 0){
n = n / 2
}
else{
n = n * 3 + 1
}
if(n > max){
max = n
}
}
result.push(max)
}
console.log(result.join('\n'))'회고' 카테고리의 다른 글
| [개발일지] - 725(주말) (0) | 2025.06.28 |
|---|---|
| [개발일지] - 724 (0) | 2025.06.27 |
| [개발일지] - 722(대체휴가) (0) | 2025.06.25 |
| [개발일지] - 721 (0) | 2025.06.24 |
| [개발일지] - 720 (0) | 2025.06.23 |
