반응형
https://www.acmicpc.net/problem/11721
문제
알파벳 소문자와 대문자로만 이루어진 길이가 N인 단어가 주어진다.
한 줄에 10글자씩 끊어서 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다.
출력
입력으로 주어진 단어를 열 개씩 끊어서 한 줄에 하나씩 출력한다. 단어의 길이가 10의 배수가 아닌 경우에는 마지막 줄에는 10개 미만의 글자만 출력할 수도 있다.
예제 입력 1
BaekjoonOnlineJudge
예제 출력 1
BaekjoonOn
lineJudge
풀이
input_str = input()
while len(input_str) >= 10:
print(input_str[:10])
input_str = input_str[10:]
print(input_str)
처음에 파이썬에서 문자열 슬라이스를해서 삭제한 나머지를 어떻게 저장해야할까를 고민했다. 파이썬에는 substring이나 splice같은게 없나..? 생각하다가 어차피 파이썬에는 슬라이싱이라는 좋은 방법이 있다는 것을 알았다.
문자열을 입력받고 문자열의 길이가 10이상일 경우 input_str[:10]을 출력해 10글자를 먼저 출력해주고, input_str[10:] 해준 값을 다시 input_str에 할당해주어 이미 출력한 문자열은 삭제될 수 있도록 해주었다.
길이가 10보다 작아졌을 때 남아있는 문자열이 있을 수 있기 때문에 while문을 빠져나온 후, 한번 더 출력해주었다.
다른 풀이
혹시 몰라서 다른 분들은 어떻게 푸셨나 검색해봤다가 무릎을 탁 치고 돌아왔다. for문에 3번째 인자가 step이라는 것을 완전 까먹고 있었다.
input_str = input()
for step in range(0, len(input_str), 10):
print(input_str[step:step+10])
굉장히 충격..
역시 내가 푼 코드만 보는 것보다 다른 분들의 코드도 같이 보는 게 참 도움이 많이 되는 것 같다.
반응형
'Algorithm > Problem Solving' 카테고리의 다른 글
[Python] 백준/BOJ - 7568번: 덩치 (0) | 2022.03.30 |
---|---|
[Python] 백준/BOJ - 5622번: 다이얼 (0) | 2022.03.24 |
[Python] 백준/BOJ - 1316번: 그룹 단어 체커 (0) | 2022.03.23 |
[Python] LeetCode - 841. Keys and Rooms (0) | 2021.12.08 |
[Python] 백준/BOJ - 2839번: 설탕 배달 (0) | 2021.12.02 |