algorithm(98)
-
프로그래머스 괄호 회전하기 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr 💡 stack을 이용해 올바른 괄호인지 아닌지 판단했습니다. 우선 소괄호, 중괄호, 대괄호가 섞여 있는 string을 입력으로 받아 올바른 괄호인지 아닌지 판단하는 is_correct 함수를 정의했습니다. 닫는 괄호를 key, 그에 상응하는 여는 괄호는 value로 갖는 parenthesis라는 딕셔너리를 만들고, (1) input의 시작이 닫는 괄호면 바로 False를 반환하도록 했습니다. (2) 그 외의 경우엔 stack을 만들어 input의 하나씩 받으면서 (2-1) 닫는 괄호고 stack에 pop할 것이 있는 경우, 현재의 닫는 괄호와 대응하는 ..
2021.04.26 -
프로그래머스 더 맵게 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 💡 힙(heap)을 사용하여 풀이했습니다. heapify로 input을 오름차순으로 정렬하고, 가장 맵지 않은 것들 순서대로 2개를 뽑아(pop) 새로운 스코빌 지수를 계산합니다. 이렇게 새로 계산한 스코빌 지수를 input에 push합니다. 이때, input의 길이가 짧아 2개를 뽑지 못할 수 있으니, 이땐 문제에 명시된 대로 -1을 반환하도록 해줍니다. imp..
2021.04.25 -
프로그래머스 방문 길이 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/49994?language=python3 코딩테스트 연습 - 방문 길이 programmers.co.kr 💡 지나간 길을 리스트에 저장하여 처음 지나는 길인지 아닌지 판단했습니다. 우선 move라는 함수를 만들어 U, D, R, L에 따라 움직이도록 했고, solution 함수에서 주어진 명령어에 따라 움직이되, (1) 경계선을 지나는 명령어는 아예 무시하고 위치 업데이트 하지 않았습니다 (2) 그 외의 명령어는 모두 위치 업데이트 하되, 처음 지나간 길을 가는 경우 해당 길을 hist라는 리스트에 저장하고 answer를 1 증가시켰습니다. * 예전에 같은 길을 반대 방향으로 지났던 경우도 중복된 길을 다시 걷는 것임을 주의해야 ..
2021.04.21 -
프로그래머스 괄호 변환 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 💡 입력된 문자열이 균형잡힌 문자열인지, 올바른 문자열인지 확인하는 함수와 주어진 괄호 문자열의 방향을 뒤집어주는 함수를 먼저 정의해주었습니다. 올바른 문자열인지 확인하는 함수의 경우 queue를 활용하여 '('만 저장해두는 queue인 result를 만들어두고, 주어진 문자열을 처음부터 확인하면서 '('면 result에 저장하고, ')'면 직전에 나온 '('를 pop하도록 했..
2021.04.20 -
프로그래머스 문자열 압축 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 💡 1부터 문자열 s의 길이까지 1씩 증가하며 각 단위로 잘라 압축해보고, 이 중 최단 길이를 반환하도록 했습니다. 문자열 압축은 우선 빈 string인 result를 만들어주고 단위에 따라 문자열을 잘랐습니다. 자른 문자열이 이전에 자른 문자열과 같으면 문자열 뒤의 count만 하나씩 늘려주고, 다르면 현재 문자열을 result에 append 한 뒤 count를 1로..
2021.04.20 -
프로그래머스 자물쇠와 열쇠 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 💡 각 좌표의 차이를 통해 대응관계를 알아내어 풀이합니다 다음의 2가지 조건을 충족하면 True를 반환하도록 풀이했습니다. 만족하지 않으면 key를 90도씩 회전시켜보면서 다시 조건을 따져보게 했고, 끝까지 안되면 False를 반환하도록 했습니다. 1. 열쇠 모양이 맞을 것 lock이 0인 부분의 모양과 key가 1인 부분의 모양이 같아야 합니다. 주어진 lock에서 0인 부분의 좌표(lock0)와 그 좌표들의 차를 통해 관..
2021.04.16