[BOJ] 10431. 줄세우기

Jimeaning·2023년 11월 13일
0

코딩테스트

목록 보기
133/143

Python3

문제

https://www.acmicpc.net/problem/10431

키워드

  • 구현
  • 시뮬레이션

문제 풀이

문제 요구사항

아이들은 항상 20명이며, 같은 키를 가진 학생은 한 명도 없다.

줄 서는 규칙

  • 자기 앞에 자기보다 키가 큰 학생이 없다면 그냥 그 자리에 서고 차례가 끝난다.
  • 자기 앞에 자기보다 키가 큰 학생이 한 명 이상 있다면 그중 가장 앞에 있는 학생(A)의 바로 앞에 선다. 이때, A부터 그 뒤의 모든 학생들은 공간을 만들기 위해 한 발씩 뒤로 물러서게 된다.

줄서기가 끝났을 때 학생들이 총 몇 번 뒤로 물러서게 될까?

변수 및 함수 설명

  • t : 테스트 케이스의 수
    (1 ≤ t ≤ 1000)
  • arr : 키 배열
  • total : 물러서는 횟수

풀이

  • 새로운 키가 옛날 키보다 크면 조건문 처리
  • 물러서는 횟수를 1 증가시키고 두 키를 바꿔준다

최종 코드

t = int(input())

for _ in range(t):
    arr = list(map(int, input().split()))

    total = 0

    for i in range(1, len(arr)-1):
        for j in range(i+1, len(arr)):
            if arr[i] > arr[j]:
                total += 1
                arr[i], arr[j] = arr[j], arr[i]
                #print(i, j, arr[i], arr[j])

    print(arr[0], total)

피드백

문제 이름이 똑같은 게 있네 ,,허헣

profile
I mean

0개의 댓글