SWEA (SW Expert Academy)/D3

[SWEA/D3] 9280 진용이네 주차타워

2023. 5. 16. 19:02

문제 바로가기

 

SW Expert Academy

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

swexpertacademy.com

나의 코드 및 설명

t = int(input())
for test_case in range(1,t+1):
    n, m = map(int, input().split()) #n:주차공간개수 m:차량의무게
    park = []
    for _ in range(n):
        park.append(int(input()))
    weight = [0]
    for _ in range(m):
        weight.append(int(input()))
    inout = []
    for _ in range(2*m):
        inout.append(int(input()))

    wait = [] #주차공간에 차가 가득 찼을 때 대기열 리스트
    v = [0] * n #주차공간에 차가 들어온 것을 표시하기 위한 리스트
    ans = 0

    for i in inout: #출입정보를 하나씩 살펴본다.
        if i > 0: #양수가 왔을 때,(i는 차량 무게 리스트의 인덱스가 된다)
            if v.count(0) == 0: #주차 공간이 가득 찼다면,
                wait.append(i) #대기열에 추가
            else: #주차공간이 가득 차지 않았다면,
                for j in range(len(v)):
                    if v[j] == 0: #빈 공간을 찾는다.
                        v[j] = i #인덱스를 표시한다.
                        break
        elif i < 0: #음수가 왔을 때,
            i = abs(i)
            for j in range(len(v)):
                if v[j] == i: #해당 차량이 나가야 한다.
                    ans += park[j]*weight[i] #요금을 계산한다.
                    if wait: #만약 대기열이 있다면
                        v[j] = wait.pop(0) #새로운 차량이 들어온다.
                    else: #대기열이 없다면
                        v[j] = 0 #주차공간이 비었다고 표시한다.
                    break

    print("#{} {}".format(test_case, ans))

피드백

의외로 잘 풀리지 않았던 문제이다.  처음에는 출입 정보 리스트를 따로 두지 않고, 출입 정보를 하나씩 입력받으면서 요금을 더해주는 방식으로 문제를 풀었었는데, 예제 출력값은 정상적으로 나왔으나 틀렸다는 판정을 받았다. 한 시간 넘게 헤매다가 결국 구글링을 통해 다른 코드를 확인했는데, 출입 정보를 리스트에 담고, 리스트에서 하나씩 꺼내면서 요금을 구하는 방식으로 문제를 풀었더니 정답 판정을 받을 수 있었다. 문제에서 시키는 대로만 구현하면 정답 판정을 받을 수 있는 문제인데, 문제에서 시키는 대로 구현하기가 쉽지 않았던 문제. 이러한 시뮬레이션 문제에 대해 연습이 필요하다는 것을 느꼈고, 남은 기간동안 다른 시뮬레이션 문제도 많이 풀어봐야겠다. 

 

'SWEA (SW Expert Academy) > D3' 카테고리의 다른 글

[SWEA/D3] 1493 수의 새로운 연산  (0) 2023.05.17
[SWEA/D3] 1873 상호의 배틀필드  (0) 2023.05.16
[SWEA/D3] 13038 교환학생  (0) 2023.05.16
[다시풀기] [SWEA/D3] 15612 체스판 위의 룩 위치  (0) 2023.05.16
[SWEA/D3] 1208 [S/W 문제해결 기본] 1일차 - Flatten  (0) 2023.05.16
'SWEA (SW Expert Academy)/D3' 카테고리의 다른 글
  • [SWEA/D3] 1493 수의 새로운 연산
  • [SWEA/D3] 1873 상호의 배틀필드
  • [SWEA/D3] 13038 교환학생
  • [다시풀기] [SWEA/D3] 15612 체스판 위의 룩 위치
hellosonic
hellosonic
hellosonic
꾸준함
hellosonic
전체
오늘
어제
  • 분류 전체보기 (285)
    • SSAFY (4)
    • 프로그래머스 데브코스 (26)
    • Diary (1)
    • JavaScript (20)
    • ToyPJ (13)
      • Python-Django (13)
    • CS지식 (11)
      • 자료구조 (5)
      • 개발 상식 (2)
      • 네트워크 (4)
    • Baekjoon (141)
      • IM Level (57)
      • DFS와 BFS (21)
      • 백트래킹 (21)
      • DP (3)
      • 이분탐색 (4)
      • 구현 (14)
    • Programmers (13)
      • Lv1 (4)
      • Lv2 (9)
    • SWEA (SW Expert Academy) (52)
      • D1 (5)
      • D2 (7)
      • D3 (40)
    • 이코테 (4)
    • Grammar (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기
  • 관리자

공지사항

인기 글

태그

  • JS
  • 백준 2999
  • 리액트 todolist
  • 프로그래머스 데브코스
  • 파이썬 1436
  • 자바스크립트
  • SWEA D2
  • SWEA D3
  • 이코테
  • SWEA
  • 프론트엔드 데브코스
  • 파이썬 11478
  • 파이썬 2529
  • 백준 1157
  • 파이썬 1946
  • javascript ux
  • 파이썬 1269
  • 백준 14891
  • 코딩부트캠프
  • 국비지원교육
  • 그리디
  • SWEA/D3
  • 파이썬
  • 백준 18870
  • 자바스크립트 기본기
  • 프로그래머스
  • SWEA 파이썬
  • 백준
  • 백준 5212
  • 구현

최근 댓글

최근 글

hELLO · Designed By 정상우.
hellosonic
[SWEA/D3] 9280 진용이네 주차타워
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.