(1).백준 1592번 영식이와 친구들은 규칙에 따라 공을 던지면서 노는 중

일정 횟수 이상 받은 사람이 나타날 경우 몇번을 던지고 종료했는지를 구해야 하는 문제였는데

조금 이상하긴 하지만 작동 내용 자체를 구현해서 해결할 수 있었다.

 

이상한 설명 대비 구현 로직은 간결해보였는데

단순히 받은 횟수의 홀/짝 여부를 체크해서 던지는 방향을 체크해 일정 거리만큼 던지게 헀고

%의 나머지처리로 인해 0이 나올 수 있기 때문에 각 연산에서는 미리 1을 빼서 처리 후 1을 더하는 방식으로 진행했다.

const [n,m,l] = `15 4 9`.split(' ').map(Number)
const people = new Array(n+1).fill(0)
let max = 0
let now = 1
let count = 0
while(max < m){
    people[now]++
    max = Math.max(people[now], max)
    if(max == m){
        break
    }
    count++
    if(people[now] % 2){
        now = (now + l - 1) % n + 1
    }
    else{
        now = (now + n - l - 1) % n + 1
    }
}

console.log(count)

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

[개발일지] - 706  (0) 2025.06.09
[개발일지] - 705(주말)  (0) 2025.06.08
[개발일지] - 703(현충일)  (0) 2025.06.06
[개발일지] - 702  (1) 2025.06.05
[개발일지] - 701  (0) 2025.06.04

+ Recent posts