1) 사이트
2) 문제
문제는 이 그림만 잘 이해하면 된다.
우리는 H(높이), W(너비), N(입장 번호)를 받는다. 그럼 엘레베이터에서 가장 가까운 순으로 방을 배정해주면 된다.
101 -> 102 -> 103 순으로 가까운 순이고, 201->202->203 순으로 가까운 순이다.
만약 그림과 같이 6,12인 호텔에 10번 손님이 들어오면, 402호에 입장시키면 되는 것이다.
테스트 케이스를 모아보면 이렇다.
H W N
1 2 2 -> 201호 xx=2 yy=01
6 12 10 -> 402호 xx=4 yy=02
5 1 5 -> 501호 xx=5 yy=01
1 1 1 -> 101호 xx=1 yy=01
나는 H(높이)와 N(사람수)의 관계에 집중했다.
높이가 6, 10번 손님이면, 2번째 행부터 시작한다. 즉, 10//6 = 1이고 여기에 1을 더하면 2 (yy)이다.
또한 남은 수는 xx가 된다. 10%6=4
xx+yy=402가 되는 것이다.
대부분의 수는 위 처럼 풀리지만, 한 가지 H와 N이 나눠 떨어질 때가 다르다는 것을 파악했다. (노란색)
나눠떨어지면 0이 나오기 떄문이다. 때문에 xx는 5//5=1로 1이지만, yy는 5%5=0일 땐 H(높이) 값을 그대로 넣어주자!
3) 파이썬 코드
test_case=int(input())
for i in range(0,test_case):
H,W,N=input().split(' ')
#나눠 떨어질 경우
if(int(N)%int(H)==0):
xx=H
if int(N)//int(H) >= 10:
yy=str(int(N)//int(H))
else:
yy='0'+str(int(N)//int(H))
else:
xx=str(int(N)%int(H))
if int(N)//int(H)+1 >= 10:
yy=str(int(N)//int(H)+1)
else:
yy = '0'+str(int(N)//int(H)+1)
print(xx+yy)
3-1) 선수 지식
파이썬 코드를 이해하기 위해 알아야 할 선수 지식이 없습니다.
3-2) 설명
1. 몇 번의 테스트 케이스를 거칠지 받아줍니다.
test_case=int(input())
2. 테스트 케이스 만큼 H(높이),W(너비),N(손님번호)를 받아줍니다.
for i in range(0,test_case):
H,W,N=input().split(' ')
3. 각 테스트 케이스는 돌면서 나눠 떨어질 경우와 아닌 경우를 구분합니다. (위에 설명 완료)
for i in range(0,test_case):
H,W,N=input().split(' ')
#나눠 떨어질 경우
if(int(N)%int(H)==0):
else:
4. 나눠 떨어질 경우 몫은 yy, H(높이)는 xx로 처리합니다.(특히 yy는 2자리 수일 떄와 아닐 떄를 구분해줘야 합니다)
for i in range(0,test_case):
H,W,N=input().split(' ')
#나눠 떨어질 경우
if(int(N)%int(H)==0):
xx=H
if int(N)//int(H) >= 10:
yy=str(int(N)//int(H))
else:
yy='0'+str(int(N)//int(H))
else:
5. 안나눠 떨어질 경우는 몫에 1을 더한 값은 yy, 나머지값은 xx로 처리합니다. (특히 yy는 2자리 수일 떄와 아닐 떄를 구분해줘야 합니다)
for i in range(0,test_case):
H,W,N=input().split(' ')
#나눠 떨어질 경우
if(int(N)%int(H)==0):
xx=H
if int(N)//int(H) >= 10:
yy=str(int(N)//int(H))
else:
yy='0'+str(int(N)//int(H))
else:
xx=str(int(N)%int(H))
if int(N)//int(H)+1 >= 10:
yy=str(int(N)//int(H)+1)
else:
yy = '0'+str(int(N)//int(H)+1)
6. 결과값을 출력합니다.
print(xx+yy)
지금까지 문자열로 바꿔 저장해왔으니 그냥 출력해도 됩니다.
4) c언어
아직~
지금은 파이썬에 관심있는만큼 c언어는 쉬어가도록 하겠습니다 ㅎㅎ...
궁금한 점이나 이상한 점 등 나누고 싶은 의견은 댓글로 남겨주세요!
끝!
'알고리즘 > 백준' 카테고리의 다른 글
2839번 설탕 배달 (0) | 2021.06.06 |
---|---|
2775번 부녀회장이 될테야 (0) | 2021.06.06 |
2869번 달팽이는 올라가고 싶다 (0) | 2021.05.31 |
1193번 분수찾기 (0) | 2021.05.30 |
2292번 벌집 (0) | 2021.05.30 |