728x90
728x90
문제
재현이는 알파벳 소문자로 이루어진 문자열 하나를 받아 그대로 두 번 연달아 썼다. 예를 들어 “abc” 를 받았다면 “abcabc” 를 썼다.
당신에게 문자열이 주어질 때, 이 문자열이 재현이가 만들어 낼 수 있는 문자열인지 판단하라.
입력
첫 번째 줄에 테스트 케이스의 수 TC가 주어진다. 이후 TC개의 테스트 케이스가 새 줄로 구분되어 주어진다. 각 테스트 케이스는 다음과 같이 구성되었다.
- 첫 번째 줄에 문자열의 길이 N이 주어진다. (1≤N≤100)
- 다음 줄에 길이 N의 알파벳 소문자 문자열 S가 주어진다.
출력
각 테스트 케이스 마다 한 줄씩, 재현이가 만드는 게 가능한 문자열이라면 “Yes”, 불가능한 문자열이라면 “No” 를 출력하라.
예제
[입력] | [출력] |
3 6 abcabc 2 ab 1 z |
#1 Yes #2 No #3 No |
문제 해결 방법
- 입력 받은 문자열(
word
)이 절반으로 나눈 문자로 만들어질 수 있으면Yes
를, 그렇지 않으면No
를 출력시키는 문제이다. - 문자열의 길이(
length_of_word
)가 홀수이면 무조건No
를 출력시키고, 짝수이면 입력 받은 문자열(word
)이 해당 문자열을 절반으로 나눈 문자(half_of_word
)로 만들어질 수 있는지 여부를 확인한 후Yes
또는No
를 출력한다.
length_of_word = int(input()) word = input() # 정답 출력 if length_of_word % 2 != 0: # 문자열 길이가 홀수이면 No answer = "No" else: # 문자열의 길이가 짝수이면 half_of_word = word[:int(length_of_word / 2)] # 입력 받은 문자열을 절반으로 나눈 문자 answer = "Yes" if word == half_of_word * 2 else "No" print(f"#{test_case} {answer}")
코드
T = int(input()) for test_case in range(1, 1 + T): length_of_word = int(input()) word = input() # 정답 출력 if length_of_word % 2 != 0: # 문자열 길이가 홀수이면 No answer = "No" else: # 문자열의 길이가 짝수이면 half_of_word = word[:int(length_of_word / 2)] # 입력 받은 문자열을 절반으로 나눈 문자 answer = "Yes" if word == half_of_word * 2 else "No" print(f"#{test_case} {answer}")
참고
- 난이도: D3
728x90
728x90
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA-16910][Python] 원 안의 점 (0) | 2023.10.24 |
---|---|
[SWEA-1204][Python] [S/W 문제해결 기본] 1일차 - 최빈수 구하기 (1) | 2023.10.23 |
[SWEA-1284][Python] 수도 요금 경쟁 (1) | 2023.10.23 |
[SWEA-1285][C++] 아름이의 돌 던지기 (0) | 2023.10.23 |
[SWEA-1288][Python] 새로운 불면증 치료법 (1) | 2023.10.23 |
[SWEA-1928][Python] Base64 Decoder (0) | 2023.10.23 |
[SWEA-1940][Python] 가랏! RC카! (1) | 2023.10.19 |
[SWEA-1945][Python] 간단한 소인수분해 (1) | 2023.10.19 |