Bamboo is coming
[211111] 백준 16113 시그널 실버2 문자열 문제풀이 python 본문
- 알고리즘 분류 : 구현, 문자열
![](https://blog.kakaocdn.net/dn/6b5Qo/btrqvyrchCJ/7r48o0ab9idHinh2KxCKak/img.png)
#백준 16113 시그널 실버2 문자열
import sys
input= sys.stdin.readline
#시그널의 총 길이는 항상 5의 배수(=행이 5개)
#숫자와 숫자 사이에는 1열 이상의 공백 존재(첫번째와 마지막 숫자 앞뒤에는 공백 X)
#숫자는 3열을 차지, 숫자 1은 다른 숫자와 다르게 1열 차지
#열로 배열을 만들어서 열이 공백인 부분 제외
N = int(input()) #시그널의 길이
AllOfSignal = input()
col = N//5 #시그널의 column, row는 언제나 5
signal = [[0 for _ in range(5)]for _ in range(col)] #열을 기준으로 시그널 배열 생성(공백으로 숫자 구분)
tmp = 0
ans = ''
for i in range(5):
for j in range(col):
if(AllOfSignal[tmp]=='#'):
signal[j][i]=1
else:
signal[j][i]=0
tmp+=1
emptyRule = [0,0,0,0,0]
z = 0
while(z<col):
if(signal[z]==emptyRule): #공백
z+=1
elif(signal[z]==[1,1,1,1,1]): # 0,1,6,8
if(z+1>=col):
ans += '1'
z+=2
elif(signal[z+1] == emptyRule): # 1
ans += '1'
z+=2
elif(signal[z+1]==[1,0,0,0,1]): #0
ans += '0'
z+=3
elif(signal[z+2]==[1,0,1,1,1]): #6
ans += '6'
z+=3
else: #8
ans += '8'
z+=3
elif(signal[z]==[1,1,1,0,1]): #5,9
if(signal[z+2]==[1,0,1,1,1]):
ans += '5'
z+=3
else:
ans += '9'
z+=3
elif(signal[z]==[1,0,1,1,1]): #2
ans += '2'
z+=3
elif(signal[z]==[1,0,1,0,1]): #3
ans += '3'
z+=3
elif(signal[z]==[1,1,1,0,0]): #4
ans += '4'
z+=3
elif(signal[z]==[1,0,0,0,0]): #7
ans += '7'
z+=3
print(int(ans))
#<1번째 열>
#[1,1,1,1,1] => 0,1,6,8
#-> 2번째 열 [1,0,0,0,1] => 0, (앞뒤)공백 => 1,
#-> 3번째 열 [1,0,1,1,1] => 6, [1,1,1,1,1] => 8
#[1,0,1,1,1] => 2
#[1,0,1,0,1] => 3
#[1,1,1,0,0] => 4
#[1,1,1,0,1] => 5,9
#->3번째 열 [1,0,1,1,1] => 5, [1,1,1,1,1] => 9
#[1,0,0,0,0] => 7
무식하고 단순한 방법으로 헀다. 숫자를 코드별로 분류해서 각각 if문으로 처리하는 방법.
파이썬은 매번 out of index 오류로 싸우는 것 같다.
마지막에 똑같은 코드 틀렸다고 나오길래 print(int(ans)) 로 했던거 그냥 string으로 출력하니까 정답이었다.
![](https://blog.kakaocdn.net/dn/cYIcHm/btrquPfz9Hm/Wxfeb19grotwUMYlV6HQz0/img.png)
뿌엥
코드 길이는 주석 제거해서 짧아졌다.
'PS' 카테고리의 다른 글
[220113] 백준 10872 팩토리얼 브론즈3 문제풀이 python (0) | 2022.01.14 |
---|---|
[211115] 백준 1325 효율적인 해킹 실버2 문제풀이 python (0) | 2022.01.14 |
[211110] 백준 2841 외계인의 기타 연주 실버1 문제풀이 python (0) | 2022.01.14 |
[211109] 백준 1935 후위표기식2 실버3 문제풀이 python (0) | 2022.01.14 |
[211101] 프로그래머스 위클리챌린지 최소직사각형 문제풀이 java (0) | 2022.01.12 |
Comments