(1).백준 15296번 Sum Squared Digits Function는 해당 숫자를 주어진 진수로 변경한 다음
각 자릿수의 제곱의 합을 출력해야 하는 문제였는데
일단 간단하게 진수 변환을 toString으로 할 수 있었지만 에러가 발생했고
원인을 파악해보니 a~f까지의 경우에는 숫자가 아니기 때문에
해당 내용을 변환해주는 map을 만든 다음 값을 변경해서 제곱하는 방식으로 해결했다.
사실 아스키 코드로 변환 후 뺴서 진행해도 되지만
오히려 그게 연산을 한번 더 수행할 것 같아서
초반 하드코딩?같은 map을 만들어야 하긴 하지만 이 부분이 더 시간복잡도 면에서 절약될 것 같다.
const input = `3
1 10 1234
2 3 98765
3 16 987654321`.split('\n').map(el => el.split(' '))
const map = {
'0' : 0,
'1' : 1,
'2' : 2,
'3' : 3,
'4' : 4,
'5' : 5,
'6' : 6,
'7' : 7,
'8' : 8,
'9' : 9,
'a' : 10,
'b' : 11,
'c' : 12,
'd' : 13,
'e' : 14,
'f' : 15,
}
for(let i = 1 ; i < input.length ; i++){
const [k,b,n] = input[i]
const digit = Number(n).toString(b)
let sum = 0
for(let j = 0 ; j < digit.length ; j++){
sum += map[digit[j]] ** 2
}
console.log(`${k} ${sum}`)
}'회고' 카테고리의 다른 글
| [개발일지] - 714 (0) | 2025.06.17 |
|---|---|
| [개발일지] - 713(창립기념일) (0) | 2025.06.16 |
| [개발일지] - 711(주말) (0) | 2025.06.15 |
| [개발일지] - 710 (0) | 2025.06.13 |
| [개발일지] - 709 (0) | 2025.06.12 |
