< 백준 2941번 크로아티아 알파벳>
from sys import stdin
Nlist = list(stdin.readline()) # \n 하나 더 있는 거 조심
newList = list( 1 for i in range(len(Nlist)))
result = 0
for i in range(len(Nlist)-1):
if newList[i]== 0 :
pass
else:
if Nlist[i] == "c":
if Nlist[i+1] == "=": # c=
result += 1
newList[i+1] = 0
elif Nlist[i+1] == "-": # c-
result += 1
newList[i+1] = 0
if Nlist[i] == "d":
if Nlist[i+1] == "z": # dz=
result += 1
newList[i+1] = 0
newList[i+2] = 0
elif Nlist[i+1] == "-": # d-
result += 1
newList[i+1] = 0
if Nlist[i] == "l": # lj
result += 1
newList[i+1] = 0
if Nlist[i] == "n": # nj
result += 1
newList[i+1] = 0
if Nlist[i] == "s": # s=
result += 1
newList[i+1] = 0
if Nlist[i] == "z": # z=
result += 1
newList[i+1] = 0
print(newList)
print(result)
아무 내용도 안 넣고 싶을 때
pass
아나 나는 입력값이 크로아티아 문자밖에 없는 줄 알았지!
으악 다시해야하잖아
그래도 1만 있는 리스트 0으로 바꿔서 제어하는 건 괜찮은 생각이지 않남?
와 여기 엄청난 코드가 있따
변수. replace(old, new, [count])
문자열을 변경하는 함수
문자열 안에서 특정 문자를 새로운 문자로 변경하는 기능.
- a: 현재 문자열에서 변경하고 싶은 문자
- b: 새로 바꿀 문자
- c: 변경할 횟수. 횟수는 입력하지 않으면 old의 문자열 전체를 변경!!
기본값은 전체를 의미하는 count=-1로 지정
오 -1 이 전체인가?
음 일단
모든 알파벳 리스트,
알파벳 리스트에 수가 있으면 통과
다음 수가 같은 수일 때까지 계속
수가 없으면 전체 케이스에서 빼자
앞으로 stdin.readline() 이용해서 리스트에 넣을 때는 끝에 [0:-1] 를 넣어서 \n 을 없애자!!!
range(a, b) => a,a+1,a+2,.....b-1
from sys import stdin
N = int(stdin.readline())
result = 0
for i in range(N):
Nlist = list(stdin.readline())[0:-1] # 문자 하나씩, 슬라이싱 이용\n 제거
reList = [1 for _ in range(len(Nlist))]
alList = ['a','b','c','d','e','f','g','h','i','j','k','l', 'm','n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
for i in range(len(Nlist)):
if reList[i] == 1:
if Nlist[i] in alList:
alList.remove(Nlist[i])
for k in range(i+1, len(Nlist)): # 계속 같은 문자인가?
if Nlist[i] == Nlist[k]:
reList[k] = 0
else:
break
else:
result += 1
break
print(N - result)
맞았습니다~
단계별로 풀어보기 - 문자열 까지 끝!
언제 이거 다 풀려나..?
백준게시판질문
'짜잘IT' 카테고리의 다른 글
22.09.08 - C언어 (0) | 2022.09.08 |
---|---|
22.09.08 백준풀이 (0) | 2022.09.08 |
C 언어 입문! (0) | 2022.09.06 |
22.09.05 백준풀이 (0) | 2022.09.05 |
22.09.04 백준풀이 (0) | 2022.09.05 |