[Python][백준 10431] 줄세우기 & f-string 문자열 포매팅

김바덕·2023년 7월 11일

백준

목록 보기
21/23
post-thumbnail

문제

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 문자열 포매팅 을 사용했다.

💻 f-string 이란?

f-string 포매팅은 파이썬 버전 3.6 부터 사용할 수 있는 기능이다.

f-string의 모양은 f와 {}로 구성된다.

문자열 맨 앞에 f를 붙여주고, 중괄호 안에 직접 변수 이름이나 출력하고 싶은것을 바로 넣으면 된다.

f'문자열 {변수} 문자열'

# 문자열 맨 앞에 f를 붙이고, 출력할 변수, 값을 중괄호 안에 넣습니다.
s = 'coffee'
n = 5
result1 = f'저는 {s}를 좋아합니다. 하루 {n}잔 마셔요.'
print(result1)

💻 f-string에서 중괄호 출력 방법

# f-string 중괄호 출력
num = 10
result = f'my age {{{num}}}, {{num}}'
print(result)

{{ }} 괄호를 연속해서 두개를 사용하면 중괄호 자체를 출력

myage {10}, {num}

{{{ }}} 이렇게 중괄호를 세개 입력하면 num을 변수 값으로 인식

💻 f-string과 리스트

# 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-string과 딕셔너리

딕셔너리와 f문자열 포맷을 함께 이용하기 위해서는
중괄호 안에서 딕셔너리를 호출

# f-string과 딕셔너리
d = {'name': '농담곰', 'gender': '남', 'age': 5}
result = f'내이름은 {d["name"]}, 성별은 {d["gender"]}, 나이는 {d["age"]}'
print(result)

내이름은 농담곰, 성별은 남, 나이는 5

profile
UXUI Designer

0개의 댓글