For Programmer
백준 2675번 파이썬 문제풀이(문자열 - 문자열반복) 본문
728x90
나의코드
t = int(input()) #전체 테스트케이스 입력
for _ in range(t): #테스트 케이스 횟수만큼 돌기
info = list(map(str, input().split())) # 문자열 반복횟수와 문자열 입력받기
n = int(info[0]) #문자열 반복횟수 인트로 변환
s = list(str(info[1])) #문자열의 각각의 원소를 하나씩 리스트에 대입("abc" -> "a","b","c"
for i in s: #문자열의 각각의 원소에 접근
print(i * int(n), end="") #각각의 문자마다 반복횟수만큼 곱하여 출력(파이썬은 문자열 곱하기 지원)
print() #한줄 띄우기
-> 위의 코드를 더 간결하게 만들 수 있다. 여기서 변수 s에 굳이 문자열 info[1] 을 각각의 문자로 나누어 새로운 list에 대입해줬다. ("abc" -> "a","b","c") 이는 반복문을 돌기위해서인데 파이썬은 str 즉 문자열자체도 반복가능한 객체이기 때문에 바로 반복문에 사용이 가능하다. 따라서 다음과 같이 간결하게 만들 수 있다.
t = int(input()) #전체 테스트 케이스 입력
for _ in range(t): # 테스트케이스횟수만큼 돌기
n,s = input().split() #공백으로 두개의 인자를 구분받아 각각의 원소에 대입
text ="" #출력을 위한 빈문자열 선언
for i in s: # 파이썬은 str형도 iterable객체이기 때문에 리스트에 담지않아도 바로 반복문에서 각각의 원소(문자)에 접근할 수 있다.("abc" -> "a","b","c")
text += (i * int(n)) # text라는 변수에 계속해서 각각의 문자 원소를 반복횟수만큼 곱하여 대입
print(text) #출력
-> 입력도 n,s = input().split() 와 같이 간결하게 처리 가능하며 print(~~~,end="") 를 사용하게 되면 마지막에는 반드시 print() 를 이용하여 한줄 띄어줘야 한다. 그래야 다음 출력때 그 다음줄에서 출력이 가능한대 이를 방지하기 위해서 그냥 text라는 변수에 문자를 넣어 주었다.
728x90
'코팅테스트 > 백준 문제 모음' 카테고리의 다른 글
백준 1152번 파이썬 문제풀이(문자열 - 단어의 개수) (0) | 2021.09.07 |
---|---|
백준 1157번 파이썬 문제풀이(문자열 - 단어공부) (0) | 2021.09.03 |
백준 10809번 파이썬 문제풀이(문자열 - 알파벳 찾기) : find함수 이용하지 않고 풀기 (0) | 2021.09.03 |
백준 11654번 파이썬 문제풀이(문자열 - 아스키코드) (0) | 2021.09.03 |
백준 1065번 파이썬 문제풀이(함수 - 한수) : 점화식으로 풀어보기 (0) | 2021.09.01 |
Comments