https://www.acmicpc.net/problem/10431
처음에 어렵게 생각해서 버블 정렬로 문제를 풀려고 했으나, 생각보다 너무 간단하게 풀 수 있는 문제였다.
n=int(input())
for i in range(n):
n, *heights = map(int,input().split())
steps = 0 # 뒤로 물러선 걸음 수
for i in range(1,len(heights)):
for j in range(i): # j 는 i 보다 앞쪽에 있는 인덱스에 대해서 반복
if heights[j] > heights[i]:
print(heights[j],heights[i])
steps += 1
print(f"{n} {steps}") # f-string 문자열 포매팅

출력 조건에서 테스트 케이스의 번호, 물러난 걸음 수의 총합을 공백으로 구분해서 출력하라고 했기 때문에 f-string 문자열 포매팅 을 사용했다.
f-string 포매팅은 파이썬 버전 3.6 부터 사용할 수 있는 기능이다.
f-string의 모양은 f와 {}로 구성된다.
문자열 맨 앞에 f를 붙여주고, 중괄호 안에 직접 변수 이름이나 출력하고 싶은것을 바로 넣으면 된다.
f'문자열 {변수} 문자열'
# 문자열 맨 앞에 f를 붙이고, 출력할 변수, 값을 중괄호 안에 넣습니다.
s = 'coffee'
n = 5
result1 = f'저는 {s}를 좋아합니다. 하루 {n}잔 마셔요.'
print(result1)
# f-string 중괄호 출력
num = 10
result = f'my age {{{num}}}, {{num}}'
print(result)
{{ }} 괄호를 연속해서 두개를 사용하면 중괄호 자체를 출력
myage {10}, {num}
{{{ }}} 이렇게 중괄호를 세개 입력하면 num을 변수 값으로 인식
# f-string과 리스트
n = [100, 200, 300]
print(f'list : {n[0]}, {n[1]}, {n[2]}')
for v in n:
print(f'for문으로 출력 : {v}')
list : 100, 200, 300
for문으로 출력 : 100
for문으로 출력 : 200
for문으로 출력 : 300
딕셔너리와 f문자열 포맷을 함께 이용하기 위해서는
중괄호 안에서 딕셔너리를 호출
# f-string과 딕셔너리
d = {'name': '농담곰', 'gender': '남', 'age': 5}
result = f'내이름은 {d["name"]}, 성별은 {d["gender"]}, 나이는 {d["age"]}'
print(result)
내이름은 농담곰, 성별은 남, 나이는 5