본문 바로가기
ALGORITHM/SW Expert Academy

[SWEA/Python] 4408. 자기 방으로 돌아가기

by 안녕나는현서 2021. 8. 24.
728x90

📌 문제

https://swexpertacademy.com/main/main.do

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

📌 문제 접근 방법

  1. 방 위치를 복도 기준으로 바꾼다는 아이디어는 처음부터 생각했었지만, 그걸 카운팅해서 가장 큰 숫자를 출력하면 된다는 것까지는 생각하지 못했다,,
  2. 그리고 테스트 케이스에서 항상 temp[0]이 temp[1]보다 작아서 반대의 경우를 고려 안했다가 계속계속 틀렸다,,

완성하고보니 코드 참 깔끔하넹

 

📌 코드

import sys
sys.stdin = open('input.txt')

T = int(input())

for t in range(1, T+1):
    N = int(input())

    # 사용 중인 복도를 표시할 리스트
    corridor = [0] * 200

    # 학생들의 방 위치를 복도를 기준으로 바꾸어서 카운팅
    '''
    stu_room 1 3 5 7 ... 399
    corridor 0 1 2 3 ... 199
    stu_room 2 4 6 8 ... 400
    '''
    for n in range(N):
        temp = list(map(int, input().split()))
        for i in range(2):
            if temp[i] % 2:
                temp[i] = (temp[i] - 1) // 2
            else:
                temp[i] = (temp[i] - 2) // 2

        if temp[0] <= temp[1]:
            for j in range(temp[0], temp[1]+1):
                corridor[j] += 1
        else:
            for j in range(temp[1], temp[0]+1):
                corridor[j] += 1

    # 가장 많이 카운팅된 수를 출력하면, 그 복도를 동시에 사용할 수 없는 횟수이기 때문에 정답

    print('#{} {}'.format(t, max(corridor)))

 

728x90

'ALGORITHM > SW Expert Academy' 카테고리의 다른 글

[SWEA/Python] 5207. 이진탐색  (0) 2021.10.07
[SWEA/Python] 1244. 최대 상금  (0) 2021.10.04
[SWEA/Python] 4871. 그래프 경로  (0) 2021.08.24
[SWEA/Python] 4869. 종이붙이기  (0) 2021.08.24
[SWEA/Python] 1221. GNS  (0) 2021.08.23

댓글