문제 설명 : 12321 , 23432 , 1818181 처럼 좌우대칭인 숫자를 찾아서 맞으면 yes , 아니면 no를 출력해야한다.
0이 입력되면 프로그램은 종료된다.
내 코드 :
코드 설명 : str이라는 변수에 입력값이 저장된다.(input()이기 때문에 자료형은 문자열임)
while True로 반복문을 걸어놓고 str == '0'일 때 종료되게 해놨다.
입력값이 0이 아닐경우 for문으로 str_li(리스트 자료형)에 str을 한 글자 한 글자 분리해서 넣어줬다.
(입력값이 12321이였다면 str에는 '12321'이 들어감, 이걸 for문을 사용해서 str_li에 ['1','2','3','2','1']이 들어가게 한거임)
그리고 reversed_str_li = list(reversed(str_li)) 이 코드를 통해 str_li를 좌우대칭 시킨 리스트를 만듦.
마지막에 조건문으로 str_li 와 reversed_str_li가 같으면 yes 다르면 no가 출력되게 함.
내 코드 :
처음에 입력되는 숫자를 n 에 저장한다. 그 후 0100101 이런식으로 입력되는 숫자들을 하나하나 문자로 바꿔서
튜플안에 넣고 sentence안에 저장한다. alphabet과 alphadict을 활용해 ("0", "0", "0", "0", "0", "0")를 "A"에 매치시키는 식으로 진행했다. 밑에 반복문은 문자가 8가지이고 각 문자는 6개의 숫자로 구성돼있고 문자의 개수는 n개 이므로 저렇게 구성해놨다.
이 문제는 실버4지만 상원님의 알고리즘 스터디에서 큐,데큐,스택을 배운 나에게는 가소로운 문제였따.
내 코드:
코드 설명 : 이 문제에서 살짝 어려웠던게
push 1
이런식으로 한 줄에 문자열과 숫자가 둘 다 있다는 점이였다.
그래서 나는 command.append(list(map(str, sys.stdin.readline().split()))) 이 코드를 통해
command안에 리스트 형태로 [문자열,문자열이 된 숫자] 이렇게 들어가게 했다.
이렇게 이차원 리스트 형태로 만들어 두고 두번째 인덱스가 0번째면 문자열이라는걸 이용해서
문제를 해결했다. (deque를 몰랐으면 좀 힘들었을지도..?)
'WINK-(Web & App) > 개인 스터디 & 프로젝트' 카테고리의 다른 글
알고리즘 2인 스터디 #6주차 - 박성훈 (0) | 2023.08.22 |
---|---|
알고리즘 2인 스터디 #6주차 - 이총명 (0) | 2023.08.22 |
알고리즘 2인 스터디 #5주차 - 박성훈 (0) | 2023.08.16 |
알고리즘 2인 스터디 #3주차 - 박성훈 (0) | 2023.08.01 |
알고리즘 2인 스터디 #3주차 - 이총명 (0) | 2023.08.01 |