lazylazylazylazylazylazylazylazy

백준[JAVA] 14652번 나는 행복합니다~ 본문

프로그래밍/Break BOJ byJAVA

백준[JAVA] 14652번 나는 행복합니다~

lazylazylazylazylazylazylazylazy 2021. 2. 22. 23:41
728x90
반응형

https://www.acmicpc.net/problem/14652

 

14652번: 나는 행복합니다~

첫째 줄에 관중석의 크기를 나타내는 N, M과 잃어버린 관중석 번호를 나타내는 K가 주어진다. (1 <= N, M <= 30,000, 0 <= K <= N*M-1)

www.acmicpc.net

엄청 잘 만든 문제같다!! 처음엔 이차배열로 풀 생각했지만 굳이 그럴 필요없이 원 큐로 풀 수 있을거같아서 고민해봤다.

1. N * M 형식 사각형에서 각각 인덱스가 관중석 번호이다. (0,0)부터 시작한다 

2.가로의 한 줄에서 벗어나면 그 다음 세로줄로 넘어간다고 생각하면 K/M 이렇게 몫이라고 생각할수있다!

0 1 2 3
4 5 6 7
8 9 10 11

즉 여기서 관중석 번호가 5라고 하면 0,1,2,3 첫번째줄 길이인 즉 4를 초과해서 다음줄로 넘어가게된다

->그럼 세로줄좌표는 0이 아닌건 확실하다.

어떤 수의 할당된 범위를 계속 뛰엄뛰엄 간다고 생각하면 나누기 뉘앙스가 나오는데..

나누기로 연결시켜 몫이라고 생각하면 세로줄 좌표는 K/M이 된다! 5/4=1 이고

그리고 가로줄 좌표는 나누기를 시행한 후 나머지라고 생각하면된다 나머지만큼 진행하니

만약 나머지가 4를 초과하면 그 다음줄로 넘어가서 다시 몫은 1이 늘어난다!

하지만 5%4는 1이니 관중석 번호 5의 좌표는 (1,1)이 된다

 

728x90
반응형
Comments