728x90
반응형
https://www.acmicpc.net/problem/9946
문제를 풀면서 몰랐던 개념
[Python] 문자열(string)을 한 글자씩 끊어서 리스트로 바꾸기
-> 입력 받은 문자열을 하나하나 분리해서 리스트에 저장하고 싶을 때 사용!
str = "love"
print(list(str))
>>> ['l','o','v','e']
a = list(str)
print(a)
>>> ['l','o','v','e']
문제의 접근 방법
입력 받은 문자열을 하나하나씩 끊어서 저장한 후 정렬하기!
내가 막혔던 부분
for문 사용 -> 오답
while문 사용 -> 정답
문제 풀이 방법
케이스마다 번호를 붙여서 출력하기 위해 i=1(1번부터 시작하므로) 선언 -> while문을 돌려서 처음 완성한 단어(a), 떨어뜨린 다음 회수한 알파벳들(b) 입력 받기 -> 만약 a,b값이 "END"라는 단어라면 반복문 탈출 -> 그게 아니라면 입력된 단어 a,b를 알파벳 하나하나씩 끊어서 리스트 A,B에 저장한 후 오름차순으로 정렬(비교를 위해) -> 만약 A와 B가 같다면 same 출력, 다르다면 different 출력!
처음 작성했던 오답 코드
for i in range(1, 1000):
a = input()
b = input()
if a == "END" and b == "END":
break
else:
A = sorted(list(a))
B = sorted(list(b))
if A == B:
print("Case", str(i)+ ": same")
elif A != B:
print("Case", str(i)+ ": different")
* 아직 왜 for문은 틀리고 while문은 맞는지 알아내지 못함...
소스코드
# 정답 소스코드!!!
i = 1
while True:
a = input()
b = input()
if a == "END" and b == "END":
break
else:
A = sorted(list(a))
B = sorted(list(b))
if A == B:
print("Case", str(i)+ ": same")
elif A != B:
print("Case", str(i)+ ": different")
i += 1 # 반복문 한 번씩 돌 때마다 1씩 늘어남
728x90
반응형
'백준 write-up > 정렬 & 그리디' 카테고리의 다른 글
[백준] 수열과 쿼리 3 : 13544번 - Python (0) | 2021.07.28 |
---|---|
[백준] Project Teams : 20044번 - Python (0) | 2021.07.28 |
[백준] 소가 길을 건너간 이유 3 : 14469번 - Python (0) | 2021.07.27 |
[백준] 스네이크 버드 : 16435번 - Python (0) | 2021.07.26 |
[백준] 숫자놀이 : 1755번 - Python (0) | 2021.07.26 |