728x90
문제 링크: https://www.acmicpc.net/problem/2929
2929번: 머신 코드
종수는 새 마이크로프로세서를 구매했다. 새 프로세서에 예전 프로세서에서 작동하던 프로그램을 실행시키니 실행이 되지 않았다. 며칠동안 두 프로세서의 기술 문서를 살펴본 결과, 그 결과를
www.acmicpc.net
❌ 1차시도 실패
<명령은 반드시 4로 나누어지는 위치에서 시작해야 한다.>라는 문구를 나누는 것보다 4로 빼는 거로 잘못 설계 했었다.... 예를 보면 충분히 가능하지만 만약 AaaaBbbbCccccccD 이렇게 나오는 경우는 풀수 없는 것이다....ㅠ
1
2
3
4
5
6
7
8
9
|
import re
text= input()
sp_list=re.split('(?=[A-Z])',text)
cnt=0
for i in range(1,len(sp_list)-1):
a= 4-len(sp_list[i])
if a>0: cnt+=a
print(cnt)
|
cs |
❓ 정답은 ??
1
2
3
4
5
6
7
8
9 |
import re
t = input()
p = re.split('(?=[A-Z])',t)
cnt = 0
for i in range(1,len(p)-1):
a= len(p[i]) % 4
if a!= 0: cnt+=(4-a)
print(cnt)
|
cs |
💯 풀이 과정
1) 정규표현식으로 [A-Z]까지 검색을 하는데 포함을 해야하니까 앞에 ?=를 붙여 긍정탐색
2) 그렇게 되면 리스트로 묶여져 나온다 (예) EaEbFabG -> ['', 'Ea', 'Eb', 'Fab', 'G']
3) 여기서 반복문을 돌리면서, 각자리 수가 4로 나눴을 때 0으로 안떨어지는지 확인
- 여기서 중요한 점은 인덱스[0]은 빼주고, 가장 마지막도 빼줘야한단 사실!
4) 안떨어지면 4의 배수가 되기위해 몇자리가 필요한지 알아야하니 4-나머지
5) (4-나머지)들을 합산해준다.
😎오늘의 한줄평: 문제 속에 답이 있따-------!
728x90
'😁 빅데이터 문제 풀기 & Study > - BAEKJOON 문제' 카테고리의 다른 글
[4659] 비밀번호 발음하기 / 파이썬 ( 정규표현식 ) (0) | 2021.12.07 |
---|---|
[2954] 창영이의 일기장 / 파이썬 ( 4줄이면 끝 ) (0) | 2021.12.06 |
[3447] 버그왕 / 파이썬 ( 파이썬 방법으로 풀 수 있습니다!ㅠㅠ 유레카) (0) | 2021.12.05 |
[15881] Pen Pineapple Apple Pen / 파이썬 (정규표현식 ) (0) | 2021.12.04 |
[2902] KMP는 왜 KMP일까? / 파이썬 (방법 2가지 반복문 / 정규표현식) (0) | 2021.12.04 |