SWEA (SW Expert Academy)/D3

[SWEA/D3] 1208 [S/W 문제해결 기본] 1일차 - Flatten

2023. 5. 16. 12:48

문제 바로가기

 

SW Expert Academy

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

swexpertacademy.com

나의 코드 및 설명

  • 이 문제의 핵심은 덤프를 실시할 때 마다, 최고점과 최저점을 일일이 찾는 것이 아니라. 오름차순 혹은 내림차순 정렬로 최고점과 최저점을 한 곳에 몰아두고, num_list[0]과 num_list[-1]을 통해 최고점과 최저점을 찾아서 각각 -1, +1을 해주는 것이다.
for test_case in range(1, 11):
    count = int(input())
    num_list = list(map(int, input().split()))
    num_list.sort(reverse = True) #내림차순 정렬

    n = 0
    while n < count:
        num_list.sort(reverse=True)  #덤프를 실시할 때마다, 최고점을 앞으로, 최저점을 뒤로 보내는 정렬 실시
        n += 1 #덤프 횟수 증가
        num_list[0] -= 1 #최고점을 1 깎는다
        num_list[-1] += 1 #최저점에 1 쌓는다
        #만약 덤프할 게 없다면 반복문탈출
        if max(num_list) - min(num_list) == 1 or max(num_list) - min(num_list) == 0:
            break

    print("#{} {}".format(test_case, (max(num_list) - min(num_list))))

 

피드백

반복문을 돌 때마다 정렬 메서드를 실행시키면 시간초과가 발생하지 않을까 걱정했는데 (시간복잡도 : O(n^2)) 주어진 범위가 100으로 적다보니, 시간초과가 발생하지 않았다. 이렇게 최고점, 최저점을 찾아야하는 문제를 만났을 때는, 일일이 찾는 것도 방법이겠지만, 정렬 메서드를 활용하여 최고점과 최저점을 찾을 수 있다는 것을 알 수 있었다. 좋은 문제인 것 같다.

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

[SWEA/D3] 13038 교환학생  (0) 2023.05.16
[다시풀기] [SWEA/D3] 15612 체스판 위의 룩 위치  (0) 2023.05.16
[다시풀기] [SWEA/D3] 1206 [S/W 문제해결 기본] 1일차 - View  (0) 2023.05.16
[SWEA/D3] 7510 상원이의 연속 합  (0) 2023.05.10
[SWEA/D3] 14413 격자판 칠하기 / for문을 한 번만 사용하는 연습이 필요하다..  (0) 2023.05.09
'SWEA (SW Expert Academy)/D3' 카테고리의 다른 글
  • [SWEA/D3] 13038 교환학생
  • [다시풀기] [SWEA/D3] 15612 체스판 위의 룩 위치
  • [다시풀기] [SWEA/D3] 1206 [S/W 문제해결 기본] 1일차 - View
  • [SWEA/D3] 7510 상원이의 연속 합
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)

블로그 메뉴

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

공지사항

인기 글

태그

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

최근 댓글

최근 글

hELLO · Designed By 정상우.
hellosonic
[SWEA/D3] 1208 [S/W 문제해결 기본] 1일차 - Flatten
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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