본문 바로가기

Algorithm38

[프로그래머스] [Python] Level2_조이스틱 https://programmers.co.kr/learn/courses/30/lessons/42860 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr 실패 코드 def solution(name): #유니코드로 변환하여 숫자 비교 A->65, Z->90, N->78 ,O->79 cnt = 0 ans = [] arr = [ord(i) for i in name] print(arr) for a in arr: ans.append(min(a-65,91-a)) print(ans) print(set(ar.. 2021. 10. 2.
[프로그래머스] [Python] Level1_K번째 수 https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr def solution(array, commands): answer = [] #command[0]-1 : slice start #command[1] : slice end #command[2]-1 : index for command in commands: answer.append(sorted(array[command[0]-1:command[1]])[command[2]-1]) return answer 2021.09.29 def so.. 2021. 9. 30.
[백준] [Python] #1062 가르침 https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net 다들 비트마스킹으로 푸는걸 나는 set으로 풀기 시도를 했다. 뭔가 아이디어는 이게 맞는거같은데 주어진 테스트케이스 중 세번째에서 오답이 나와서 때려쳤다... 아래 코드는 때려치기 직전의 오답 코드이다... n, k = map(int, input().split()) if k-5 ans: ans = tmp print(ans) 혹시 몰라 제출도 해봤는데 역시나 였다. 결론은 비트마스킹으로 풀어.. 2021. 9. 25.
[백준] [Python] #14719 빗물 https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 순간 문제를 보자마자 보이는 2차원 격자무늬 그림에 이거 2차원 배열 써야하나 싶었다. 그러나 그런 문제는 아니었고 숫자를 받아서 배열 생성하는 뻘짓을 안한 것만 해도 감사하다. left_wall = arr[0] ans = 0 ansList = [0] for i in range(1, m): if arr[i] < left_wall: ans += left_wall-arr[i] eli.. 2021. 9. 25.
[백준] [Python] #9012 괄호 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 중간에 풀다가 막혔는데 is_empty라는 flag를 넣음으로서 해결함 '('면 append하고 아니면 pop하는데, 마지막에 stack에 뭐가 남아있으면 NO만 하려 했더니 걸러지지 않는 케이스가 있었다 ')' 같은 경우가 그러했다. 애초에 '('이 append된 적이 없어서 stack이 비어있거나, '('보다 ')'갯수가 더 많은 경우 그러했다. 따라서 비정상적인.. 2021. 9. 25.
[백준] [Python] #2504 괄호의 값 https://www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 www.acmicpc.net 1단계. Stack임을 알아챈다! 2단계. 괄호 별로 수행하는게 다르기 때문에 (, ), [, ] 각각 if로 분기친다 + 쌍이 안맞는 괄호 걸러내기 3단계. 계산이 복잡함을 깨닫고 새로운 flag역할을 할 tmp를 추가한다 4단계. 괄호 기호만 stack에 넣는게 아니라 계산 값도 동시에 stack으로 관리한다 - 계산 값만 따로 관리할 여러 방법을 생각해봤는데 괄호안에 괄호가 있는 거라 함께.. 2021. 9. 25.