[Algorithm] [백준] 1158 (Feat. join 함수)

myeonji·2022년 2월 19일
0

Algorithm

목록 보기
46/89

join 함수

  • ''.join(리스트)
    매개변수로 들어온 ['a', 'b', 'c'] 이런 식의 리스트를 abc의 문자열로 합쳐서 반환한다.

  • '구분자'.join(리스트)
    리스트의 값과 값 사이에 '구분자'에 들어온 구분자를 넣어서 하나의 문자열로 합친다.
    '/'.join(['a', 'b', 'c']) 라 하면 a/b/c 와 같은 형태로 문자열을 만들어서 반환한다.

🚫 주의할 점
리스트 안에 정수형이 있다면 정수형을 문자로 바꾸어야 join을 사용할 수 있다.

예) lst = ['1', '2', '3'] 일 때 ', '.join(lst) = 1, 2, 3 이 된다. 물론 이때의 1, 2, 3은 문자이다.


import sys
from collections import deque

n, k = map(int, sys.stdin.readline().split())

n_list = deque()
for i in range(n):
    n_list.append(i+1)

s = []
while len(n_list) != 0:
    for i in range(1, k+1):
        if i == k:
            s.append(str(n_list.popleft()))
        else:
            n_list.append(n_list.popleft())

print('<', end='')
str = ', '.join(s)
print(str, end='')
print('>')

n명이 원형으로 도는 거니까 deque 사용하면 수월하게 풀리는 듯..?
마지막에 join 함수에서 int형 안 먹혀서 조금 헤맸다
근데 리스트 안에 int형 전부 문자로 바꾸니까 된다!!
join은 문자로 구성된 리스트만 가능하다는 걸 알았당

0개의 댓글