1) 사이트
2) 문제
입력받은 문자열을 원하는 횟수만큼 연속해서 출력해주면 됩니다.
3) 파이썬 코드
times=int(input())
for i in range(times):
result=input()
if(len(result)<=1):
continue
s_time="".join(result[0:1])
character=result[2:]
for j in character:
print(j*int(s_time), end='')
print('')
3-1) 선수 지식
1. 문자열의 길이 계산하는 법
-> len(문자열)
2. 리스트를 문자열로 바꾸는 법
-> "".join(리스트)
3. 리스트 슬라이스하는 법
->리스트[첫시작:끝]
->끝으로 입력한 숫자-1만큼 출력됨
4. 다음 입력 새로운 줄에서 시작하는 법
-> print('')
3-2) 설명
1. 몇 번의 테스트 케이스를 돌릴지 입력 받습니다.
input의 기본값은 문자열이기 때문에 int로 형변환을 해줍니다.
-> times=int(input())
2. 시도하고 싶은 테스트 케이스(times)만큼 for문을 돌려 result에 스페이스로 구분하여 <반복횟수 문자열>을 입력합니다.
-> for i in range(times):
result=input()
3. <반복횟수 문자열> 둘 다 입력하지 않을 수 있다.
때문에 result가 1보다 같거나 작을 때 continue를 해줘서 빠르게 다음 테스트케이스를 실행시킨다.
-> if result <= 1:
continue
4. <반복횟수 문자열> 둘 다 입력 받았다면, 각각 s_time, character에 슬라이스해서 넣어준다.
단, 이 문제에선 반복횟수가 1~8 사이의 수이므로 한 자리라는 것을 아는 상태이다. (즉 result[1]은 ' '이다.)
-> s_time="".join(result[0:1]) //문자열
-> character=result[2:] //리스트
5. character 리스트를 하나씩 돌리며 s_time(반복횟수)만큼 출력한다.
단, 위에서 s_time을 숫자형으로 바꿔주지 않았다면, 형 변환을 해줘야한다.
->for j in character:
print(j*int(s_time), end='')
print('')
4) c언어 코드
아직~
반복횟수가 1자리라 다행이었다...
여러 자릿수였으면... 풀었을까?
그런 점도 생각해서 다시 공부해봐야겠다.
끝!
'알고리즘 > 백준' 카테고리의 다른 글
1152번 단어의 개수 (0) | 2021.05.11 |
---|---|
1157번 단어 공부 (0) | 2021.05.10 |
10809번 알파벳 찾기 (0) | 2021.04.25 |
11720번 숫자의 합 (0) | 2021.04.18 |
11654번 아스키코드 (0) | 2021.04.18 |