(1).백준 26863번 Absolutely Flat는 평평한 탁자를 만들 수 있는지 묻는 문제였는데

왜 탁자 다리를 자를 생각은 안하고 보조다리를 붙일것만 준비했는지는 모르겠지만

조건상 보조다리는 하나밖에 없고 붙이기만 가능한 구조였기 때문에 

일치하는 사이즈가 4개 또는 3개이면서 보조다리와 나머지 다리의 합이 3개짜리와 길이가 같아야 했다.

 

일단 순회하며 map에 담아주고 최대 중복개수를 찾아준 다음

해당 길이를 저장해서 다른 길이 비교에 사용하고 다를 경우 해당 길이와 보조다리의 길이의 합이

저장된 3개의 다리 숫자와 같은 경우 1 출력 아닌 경우 0출력을 하는 방식으로 해결했다.

const input = `10
10
10
10
5`.split('\n').map(Number)

const addLength = input.pop()
const check = {}
let maxCount = 0
let maxLength = 0

for(let i = 0 ; i < input.length ; i++){
    if(check[input[i]]){
        check[input[i]]++
    }
    else{
        check[input[i]] = 1
    }
}

for(let key in check){
    maxCount = Math.max(check[key])
    maxLength = key
}

const newArr = new Array(...(new Set(input))).sort((a,b) => a-b)

if(maxCount == 4){
    console.log(1)
}
else if(maxCount == 3 && newArr[1] == maxLength && newArr[0] + addLength == newArr[1]){
    console.log(1)
}
else{
    console.log(0)
}

'회고' 카테고리의 다른 글

[개발일지] - 312  (0) 2024.05.07
[개발일지] - 311(어린이날 대체휴일)  (0) 2024.05.06
[개발일지] - 309(주말)  (0) 2024.05.04
[개발일지] - 308(연차)  (0) 2024.05.03
[개발일지] - 307(연차)  (1) 2024.05.02

+ Recent posts