99클럽 코테 스터디 20일차 TIL - 소트(백준 #1083)

2024. 11. 16. 15:04·99클럽 코테 스터디

❇️오늘의 학습 키워드 : 소트(백준 #1083)

문제

크기가 N인 배열 A가 있다. 배열에 있는 모든 수는 서로 다르다. 이 배열을 소트할 때, 연속된 두 개의 원소만 교환할 수 있다. 그리고, 교환은 많아봐야 S번 할 수 있다. 이때, 소트한 결과가 사전순으로 가장 뒷서는 것을 출력한다.

입력

첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 각 원소가 차례대로 주어진다. 이 값은 1000000보다 작거나 같은 자연수이다. 마지막 줄에는 S가 주어진다. S는 1000000보다 작거나 같은 음이 아닌 정수이다.

출력

첫째 줄에 문제의 정답을 출력한다.

예제 입력 1 

7
10 20 30 40 50 60 70
1

예제 출력 1 

20 10 30 40 50 60 70

예제 입력 2 

5
3 5 1 2 4
2

예제 출력 2 

5 3 2 1 4

예제 입력 3 

10
19 20 17 18 15 16 13 14 11 12
5

예제 출력 3 

20 19 18 17 16 15 14 13 12 11

정답 코드

n = int(input())
arr = list(map(int, input().split()))
s = int(input())

for i in range(n):
    if s <= 0:  # 교환 횟수가 모두 소진되면 종료
        break

    # 현재 위치에서 S 범위 내 가장 큰 값의 인덱스 찾기
    max_idx = i
    for j in range(i + 1, min(i + s + 1, n)):
        if arr[j] > arr[max_idx]:
            max_idx = j

    # 가장 큰 값이 이미 현재 위치라면 스킵
    if max_idx != i:
        # max_idx의 값을 앞으로 이동
        for k in range(max_idx, i, -1):
            arr[k], arr[k - 1] = arr[k - 1], arr[k]
        # 이동 횟수 차감
        s -= (max_idx - i)

print(*arr)

❇️오늘의 회고

  - s == 0이 아니라 s <= 0을 하는 이유는 s가 음수가 됐을 경우 불필요한 연산을 줄이기 위함임!

  - 처음에 문제를 잘못 이해해서 버블정렬을 하려다가 이상하다 싶어 질문게시판을 활용했다...

  - 내일 11시, 문제를 풀기 전에 위 문제를 한번 더 복습하고 내일 문제에 사용된 알고리즘에 대해서 공부할 것이다!🙂

저작자표시 (새창열림)

'99클럽 코테 스터디' 카테고리의 다른 글

99클럽 코테 스터디 22일차 TIL - 산 모양 타일링(프로그래머스 #258705)  (0) 2024.11.18
99클럽 코테 스터디 21일차 TIL - 우주 탐사선(백준 #17182)  (2) 2024.11.17
99클럽 코테 스터디 19일차 TIL - 소용돌이 예쁘게 출력하기(백준 #1022)  (3) 2024.11.15
99클럽 코테 스터디 18일차 TIL - 센서(백준 #2212)  (0) 2024.11.14
99클럽 코테 스터디 17일차 TIL - 작업(백준 #2056)  (2) 2024.11.13
'99클럽 코테 스터디' 카테고리의 다른 글
  • 99클럽 코테 스터디 22일차 TIL - 산 모양 타일링(프로그래머스 #258705)
  • 99클럽 코테 스터디 21일차 TIL - 우주 탐사선(백준 #17182)
  • 99클럽 코테 스터디 19일차 TIL - 소용돌이 예쁘게 출력하기(백준 #1022)
  • 99클럽 코테 스터디 18일차 TIL - 센서(백준 #2212)
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (383) N
      • React (16)
      • Next.js (5)
      • Javascript (5)
      • Typescript (4)
      • Node.js (2)
      • Cs (16)
      • 트러블 슈팅&리팩토링 (6) N
      • Html (1)
      • Css (3)
      • Django (0)
      • vue (0)
      • Java (2)
      • Python (0)
      • 독서 (1)
      • 기타 (3)
      • 백준 (192)
      • swea (31)
      • 프로그래머스 (30)
      • 이코테 (4)
      • 99클럽 코테 스터디 (30)
      • ssafy (31)
      • IT기사 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 태그

    99클럽
    항해99
    코딩테스트준비
    개발자취업
    Til
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
버그잡는고양이발
99클럽 코테 스터디 20일차 TIL - 소트(백준 #1083)
상단으로

티스토리툴바