Algorithm/Problem Solving
[프로그래머스] 👷♀️ 쇠막대기 / Python
[프로그래머스] 👷♀️ 쇠막대기 / Python
2019.02.14👷♀️ 쇠막대기 문제 풀어보기 😃 나의 코드 def solution(arrangement): answer = 0 arrangement = arrangement.replace("()","L") stack = [] for idx, c in enumerate(arrangement): if c == '(': stack.append('(') answer += 1 elif c == ')': stack.pop() else: answer += len(stack) return answer 스택/큐 알고리즘 카테고리에 속한 문제입니다. 이 문제는 스택을 이용해 풀어야합니다. 우선 레이저에 해당하는 ()를 (과 )이 아닌 다른 문자 하나로 바꾸줍니다 여기서는 Lazer에 해당하는 L로 바꿔주었습니다. stack라는 lis..
[프로그래머스] 🧱 프렌즈 4 블록 - [1차] 2018 카카오 블라인드 채용 / Python
[프로그래머스] 🧱 프렌즈 4 블록 - [1차] 2018 카카오 블라인드 채용 / Python
2019.02.14🧱 프렌즈 4 블록 문제 풀어보기 😃 나의 코드 dx = [0, 1, 0, 1] dy = [0, 0, 1, 1] def safe(width, height, c_idx, r_idx): for x, y in zip(dx,dy): if width-1 < x+c_idx or x+c_idx < 0 or height-1 < y+r_idx or y+r_idx < 0: return False return True def del_check(board, c_idx, r_idx): square_set = set() for x, y in zip(dx,dy): square_set.add(board[y+r_idx][x+c_idx]) if len(square_set) == 1 and square_set != {" "}: retur..
[프로그래머스] 👩💼 뉴스 클러스터링 - [1차] 2018 카카오 블라인드 채용 / Python / KAKAO BLIND RECRUITMENT
[프로그래머스] 👩💼 뉴스 클러스터링 - [1차] 2018 카카오 블라인드 채용 / Python / KAKAO BLIND RECRUITMENT
2019.02.14KAKAO BLIND RECRUITMENT 👩💼 뉴스 클러스터링 문제 풀어보기 😃 나의 코드 import re from collections import Counter as mset p = re.compile("[a-z]{2}") def multiSet(str): lst = [] for idx in range(len(str)-1): if p.match(str[idx:idx+2]): lst.append(str[idx:idx+2]) return lst def solution(str1, str2): lst1 = multiSet(str1.lower()) lst2 = multiSet(str2.lower()) len_lst1 = len(lst1) len_lst2 = len(lst2) if len_lst1 == 0..
[프로그래머스] 👨💻 캐시 - [1차] 2018 카카오 블라인드 채용 / Python
[프로그래머스] 👨💻 캐시 - [1차] 2018 카카오 블라인드 채용 / Python
2019.02.13👨💻 캐시(cache) 문제 풀어보기 😃 나의 코드 def solution(cacheSize, cities): time = 0 cache = [] cities = [city.lower() for city in cities] if cacheSize != 0: for city in cities: if city in cache: cache.pop(cache.index(city)) cache.append(city) time += 1 else: if len(cache) < cacheSize: cache.append(city) time += 5 else: cache.pop(0) cache.append(city) time += 5 else: time += len(cities) * 5 return time 우선 이 ..
[프로그래머스] 🎯 다트 게임 - [1차] 2018 카카오 블라인드 채용 / Python
[프로그래머스] 🎯 다트 게임 - [1차] 2018 카카오 블라인드 채용 / Python
2019.02.12🎯 다트 게임 문제 풀어보기 😃 나의 코드 import re def solution(dartResult): answer = 0 p = re.compile("(\d+)([a-zA-Z])(\*|#)?") scores = p.findall(dartResult) result = [] for idx, score in enumerate(scores): point = score[0] bonus = score[1] option = score[2] if bonus == 'S': bonus = 1 elif bonus == 'D': bonus = 2 elif bonus == 'T': bonus = 3 if option == '*': if idx == 0: result.append(int(point)**bonus*2) els..
[프로그래머스] 🗺 비밀지도 - [1차] 2018 카카오 블라인드 채용 / Python
[프로그래머스] 🗺 비밀지도 - [1차] 2018 카카오 블라인드 채용 / Python
2019.02.12🗺 비밀지도 문제 풀어보기 😃 나의 코드 def solution(n, arr1, arr2): answer = [] for decimal1, decimal2 in zip(arr1, arr2): binary12 = str(bin(decimal1 | decimal2))[2:] binary12 = '0' * (n - len(binary12)) + binary12 binary12 = binary12.replace('1', '#') binary12 = binary12.replace('0', ' ') answer.append(binary12) return answer 비트연산(Bitwise Operation)을 이용하면 쉽게 풀 수 있는 문제입니다. 문제 중간에 둘 중 하나가라는 말이 힌트가 될 수 있겠네요. 풀이 ..
🐥 2018 카카오 블라인드 채용 알고리즘 테스트 3차 Python 풀이 모음 / KAKAO BLIND RECRUITMENT
🐥 2018 카카오 블라인드 채용 알고리즘 테스트 3차 Python 풀이 모음 / KAKAO BLIND RECRUITMENT
2019.02.092018 카카오 블라인드 채용 알고리즘 테스트 3차 Python 풀이 / KAKAO BLIND RECRUITMENT 🙋♂️ 목적 Python의 경우 C++에 비해 참고할만한 풀이가 대체로 적다고 생각했습니다. 문제를 푸시다가 공식 문제 해설을 봐도 정 모르겠는 경우 힌트 정도로 이용하시면 되겠습니다. 문제 풀이 → 공식 문제 해설 참조 → 다른 코드 참조 순서로 보시는 걸 추천드립니다. ✨ 카카오에서 제공하는 "공식 문제 해설"과 함께 읽으면 좋습니다. 1. N진수 게임 문제 풀기 / 풀이 보기 2. 💾 압축 문제 풀기 / 풀이 보기 3. 📁 파일명 정렬 문제 풀기 / 풀이 보기 4. 🤳 방금 그 곡 문제 풀기 / 풀이 보기 5. 자동완성 문제 풀기 / 풀이 보기 + ✍️ 필기 시험 문제 풀기 / 풀이..
🐥 2018 카카오 블라인드 채용 알고리즘 테스트 1차 Python 풀이 모음 / KAKAO BLIND RECRUITMENT
🐥 2018 카카오 블라인드 채용 알고리즘 테스트 1차 Python 풀이 모음 / KAKAO BLIND RECRUITMENT
2019.02.092018 카카오 블라인드 채용 테스트 1차 Python 풀이 / KAKAO BLIND RECRUITMENT 🙋♂️ 목적 Python의 경우 C++에 비해 참고할만한 풀이가 대체로 적다고 생각했습니다. 문제를 푸시다가 공식 문제 해설을 봐도 정 모르겠는 경우 힌트 정도로 이용하시면 되겠습니다. 문제 풀이 → 공식 문제 해설 참조 → 다른 코드 참조 순서로 보시는 걸 추천드립니다. ✨ 카카오에서 제공하는 "공식 문제 해설"과 함께 읽으면 좋습니다. 1. 🗺 비밀 지도 / 81.78% 문제 풀기 / 풀이 보기 2. 🕹 다트 게임 / 73.47% 문제 풀기 / 풀이 보기 3. 👨💻 캐시 / 45.26% 문제 풀기 / 풀이 보기 4. 🚍 셔틀버스 / 26.79% 문제 풀기 / 풀이 보기 5. 👩💼 뉴스 클러..
🐥 2019 카카오 블라인드 채용 코딩 테스트 Python 풀이 모음 / KAKAO BLIND RECRUITMENT
🐥 2019 카카오 블라인드 채용 코딩 테스트 Python 풀이 모음 / KAKAO BLIND RECRUITMENT
2019.02.092019 카카오 블라인드 채용 / KAKAO BLIND RECRUITMENT 1차 Python 풀이 🙋♂️ 목적 Python의 경우 C++에 비해 참고할만한 풀이가 대체로 적다고 생각했습니다. 문제를 푸시다가 공식 문제 해설을 봐도 정 모르겠는 경우 힌트 정도로 이용하시면 되겠습니다. 문제 풀이 → 공식 문제 해설 참조 → 다른 코드 참조 순서로 보시는 걸 추천드립니다. ✨ 카카오에서 제공하는 "공식 문제 해설"과 함께 읽으면 좋습니다. 1. 🙋♂️ 오픈채팅방 정답률: 59.91% 문제 풀기 / 풀이 보기 2. 😔 실패율 정답률: 55.57% 문제 풀기 / 풀이 보기 3. 🔑 후보키 정답률: 16.09% 문제 풀기 / 풀이 보기 4. 🐰 무지의 먹방 라이브 정답률: 정확성 42.08% / 효율성 5...
[프로그래머스] 🔍 매칭 점수 - 2019 카카오 블라인드 채용 / Python / KAKAO BLIND RECRUITMENT
[프로그래머스] 🔍 매칭 점수 - 2019 카카오 블라인드 채용 / Python / KAKAO BLIND RECRUITMENT
2019.02.09[프로그래머스] 🔍 매칭 점수 - 2019 카카오 블라인드 채용 / Python / KAKAO BLIND RECRUITMENT 문제 설명 프렌즈 대학교 조교였던 제이지는 허드렛일만 시키는 네오 학과장님의 마수에서 벗어나, 카카오에 입사하게 되었다. 평소에 관심있어하던 검색에 마침 결원이 발생하여, 검색개발팀에 편입될 수 있었고, 대망의 첫 프로젝트를 맡게 되었다. 그 프로젝트는 검색어에 가장 잘 맞는 웹페이지를 보여주기 위해 아래와 같은 규칙으로 검색어에 대한 웹페이지의 매칭점수를 계산 하는 것이었다. 한 웹페이지에 대해서 기본점수, 외부 링크 수, 링크점수, 그리고 매칭점수를 구할 수 있다. 한 웹페이지의 기본점수는 해당 웹페이지의 텍스트 중, 검색어가 등장하는 횟수이다. (대소문자 무시) 한 웹페이지..
[프로그래머스] 🗼 탑 / Python
[프로그래머스] 🗼 탑 / Python
2019.02.09[프로그래머스] 🗼 탑 / Python 문제 설명 수평 직선에 높이가 서로 다른 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다른 탑으로 송신되지 않습니다. 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 탑이 왼쪽으로 동시에 레이저 신호를 발사합니다. 그러면, 탑은 다음과 같이 신호를 주고받습니다. 높이가 4인 다섯 번째 탑에서 발사한 신호는 높이가 7인 네 번째 탑이 수신하고, 높이가 7인 네 번째 탑의 신호는 높이가 9인 두 번째 탑이, 높이가 5인 세 번째 탑의 신호도 높이가 9인 두 번째 탑이 수신합니다. 높이가 9인 두 번째 탑과 높이가 6인 첫 번째 탑이 보낸 ..
[프로그래머스] 🎮 블록 게임 - 2019 카카오 블라인드 채용 / Python / KAKAO BLIND RECRUITMENT
[프로그래머스] 🎮 블록 게임 - 2019 카카오 블라인드 채용 / Python / KAKAO BLIND RECRUITMENT
2019.02.09[프로그래머스] 🎮 블록 게임 - 2019 카카오 블라인드 채용 / Python / KAKAO BLIND RECRUITMENT 문제 설명 프렌즈 블록이라는 신규 게임이 출시되었고, 어마어마한 상금이 걸린 이벤트 대회가 개최 되었다. 이 대회는 사람을 대신해서 플레이할 프로그램으로 참가해도 된다는 규정이 있어서, 게임 실력이 형편없는 프로도는 프로그램을 만들어서 참가하기로 결심하고 개발을 시작하였다. 프로도가 우승할 수 있도록 도와서 빠르고 정확한 프로그램을 작성해 보자. 게임규칙 아래 그림과 같이 1×1 크기의 블록을 이어 붙여 만든 3 종류의 블록을 회전해서 총 12가지 모양의 블록을 만들 수 있다. 1 x 1 크기의 정사각형으로 이루어진 N x N 크기의 보드 위에 이 블록들이 배치된 채로 게임이 시..