티스토리 뷰
[python/백준(boj)]
2675번. 문자열 반복
파이썬을 제대로 배운적이 없어서
요새 파이썬 문법만 한번 훑어보려고 기본서를 읽고 있는데
문법 관련해서 쉬운 알고리즘 문제도 풀면 좋을 것 같아 오랜만에 백준에서 알고리즘 문제를 풀었다.
문제만 읽어서는 되게 쉬울 줄 알았는데, 알고리즘 문제를 진짜 오랜만에 풀어서 그런가 뜻대로 잘 풀리지 않아 당황...
입력값
테스트 케이스 개수
반복횟수 문자열
=> 테스트케이스 개수를 먼저 받은 다음 반복횟수와 문자열을 같은 줄에 테스트케이스 개수만큼 입력받는다.
출력값
반복횟수만큼 반복해 재생성한 문자열
풀이
<첫번째 풀이>
풀면서 아 이건 아닌데,,, 이렇게 하는거 아닌거같은데,,,
하면서도 다른 분들 답안은 보기 싫고 어떻게든 풀려고 쥐어짜낸 코드인데 진짜 다시 봐도 노답이다.
누가봐도 파이썬 문법 몰라요~~ 하는 코드,,, 빨리 파이썬 변수선언에 익숙해져야 할 것 같다고 절실히 깨닫게 됐다.
t = int(input())
# 테스트 케이스 개수가 정해져 있지 않으므로 각각 리스트에 담기
rlist = []
slist = []
# 테스트 케이스 개수만큼 입력 받기
for i in range(t):
r, s = input().split()
rlist.append(r)
slist.append(s)
for i in range(t):
s = slist[i]
r = rlist[i]
rslt = ''
# 파이썬은 문자열 곱셈이 가능하므로 문자열 곱셈으로 새 string 만들기
for j in range(len(s)):
rslt = rslt + (s[j] * int(r))
print(rslt)
<두번째 풀이>
도저히 첫번째 풀이는 좀 아닌거같아서 다시 리팩토링한 코드.
전보다는 훨씬 코드가 나아진 것 같지만 아직도 썩 맘에 들진 않는,,,,
진짜 알고리즘 공부 안한게 너무 티나서 쪽팔릴 정도인 것 같다. 앞으로 그래도 틈틈히 쉬운 문제라도 푸는 습관을 들여야겠다.
t = int(input())
# 테스트 케이스 개수만큼 입력 받기
for i in range(t):
# split() 함수를 사용해 리스트로 입력값 받기
s = input().split()
# 파이썬은 문자열 곱셈이 가능하므로 문자열 곱셈으로 새 string 만들기
for j in s[1]:
print(j * int(s[0]), end="")
print()
'Algorithm' 카테고리의 다른 글
[python/백준(boj)] 1316번. 그룹 단어 체커 (0) | 2021.02.18 |
---|---|
[python/백준(boj)] 2941번. 크로아티아 알파벳 | python replace() 함수 알아보기 (0) | 2021.02.18 |
[python/백준(boj)] 1157번. 단어 공부 (0) | 2021.02.11 |
[Java/백준(boj)] 11047번. 동전 0 (0) | 2020.07.30 |
[Algorithm][Java] 효율적인 코드 작성 방법 (1) 효율적인 입력 방법 | Scanner, BufferedReader의 차이점과 장/단점 인지하기 | StringTokenizer 사용 방법 (0) | 2020.07.30 |
댓글