회고

[개발일지] - 307(연차)

Happy Programmer 2024. 5. 2. 23:44

(1).백준 9288번 More Dice는 특정 숫자 값이 나올 수 있는 주사위 쌍을 출력해야 하는 문제로

각 케이스마다 중복없이 오름차순으로 결과를 출력해야 했는데

for문으로 각각의 케이스를 순회하면서 케이스마다 중복체크용 resultMap을 생성하고

해당 Map에 값을 담을 때 작은 값이 앞으로 가도록 Math min, max를 사용해서 담아주고

해당 값을 key in obj 형태의 for문을 사용해 순회 후 result에 담아서 출력하는 방식으로 해결했다.

const input = `6
7
5
3
3
5
12`.split('\n').map(Number)

const result = []

for(let i = 1 ; i < input.length ; i++){
    result.push(`Case ${i}:`)
    const resultMap = {}
    for(let j = 1 ; j < 7 && j < input[i] ; j++){
        for(let k = 1 ; k < 7 && j + k <= input[i] ; k++){
            if(j + k == input[i]){
                resultMap[Math.min(j, k)] = Math.max(j, k)
            }
        }
    }
    for(let key in resultMap){
        result.push(`(${key},${resultMap[key]})`)
    }
}

console.log(result.join('\n'))