프로그래머스 69

[프로그래머스] 모음사전, C++

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 요약 알파벳 aeiou 로 만들어지는 단어에 대한 사전순 위치 구하기 접근 1. 완전탐색 생각없이 완전탐색으로 구현했다. 모든 값을 구해서 map에 저장한다. for문으로 구현하는데 실패해서 재귀함수를 사용했다. void make(int ind, string word) { if (ind == 6) { return; } if (word != "" && !dict.count(word)) { // dict[word] = index++; 아래 두줄을 하나로 합쳐도 된다. dict[word] = index; in..

STUDY/Algorithm 2022.10.11

[프로그래머스] 메뉴리뉴얼, C++

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 요약 손님들이 주문한 단품 메뉴로 코스요리(조합)를 만든다. 코스 요리는 단품 두개 이 상으로 이루어져있다. 코스 요리의 길이(단품 메뉴의 개수)를 보고 그 중에 가장 많이 선택된 조합을 반환한다. 접근 모든 손님들이 주문한 단품 메뉴로 모든 조합을 만들어야한다. 조합을 만들 때 반복문, 라이브러리, 백트래킹으로 구현할수 있다. 1. 조합만들기 - 반복문 반복문을 중첩해서 사용하면 쉽게 조합을 만들수 있다. 예를 들면 ABCDE에서 3개의 원소를 가지는 조합을 만들기 위해선 다음과 같이 짜면 된다. st..

STUDY/Algorithm 2022.08.21

[프로그래머스] Level 3 섬 연결하기 python

https://programmers.co.kr/learn/courses/30/lessons/42861# 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 프림 알고리즘으로 풀었다. 크루스칼로도 풀어도 될듯 from heapq import heappop, heappush def solution(n, costs): answer = 0 adj_list = [[] for _ in range(n)] for s, e, c in costs: adj_list[s].append((c, e)) adj_list[e].append((c, s)) # prim visit = [0 for _ in range(n)] h = [(0, 0)..

STUDY/Algorithm 2022.02.14

[프로그래머스] LEVEL3 힙 디스크 컨트롤러, python

https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr from heapq import heappush, heappop def solution(jobs): # jobs가 정렬이 안되어있음 jobs.sort(key=lambda x: (x[0], x[1])) # 0 변수 선언 min_h = [] jobs_idx = 0 cur = 0 s, rt = None, None running = False answer_list..

STUDY/Algorithm 2021.12.26

[프로그래머스] 쿼드압축 후 개수 세기, 월간 코드 챌린지 시즌1, python

https://programmers.co.kr/learn/courses/30/lessons/68936?language=python3 코딩테스트 연습 - 쿼드압축 후 개수 세기 [[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15] programmers.co.kr def solution(arr): # 분할 정복 answer = devideAndConquer(0,0,arr,len(arr)) return an..

STUDY/Algorithm 2021.07.18

[프로그래머스] 영어 끝말잇기, Summer/Winter Coding(~2018), python

https://programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] programmers.co.kr def solution(n, words): answer = [0, 0] word_se..

STUDY/Algorithm 2021.06.25

[프로그래머스] 게임 맵 최단 거리, python

https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr from collections import deque def solution(maps): answer = -1 n, m = len(maps), len(maps[0]) s, e = (0,0), (n - 1, m - 1) visit = [[0] * m for _ in range(n)] dx = [1,0,-1,0]..

STUDY/Algorithm 2021.06.22

[프로그래머스] 오픈채팅방, 2019 KAKAO BLIND RECRUITMENT, python

https://programmers.co.kr/learn/courses/30/lessons/42888?language=python3 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr def solution(record): answer = [] answer_tmp = [] user_dict = {} for r in record: tmp = r.split() # answer_tmp = (uid, command) if r[0] == 'C' or r[0] == 'E': user_dict[tmp[1]] = tmp[2] ..

STUDY/Algorithm 2021.06.21

[프로그래머스] 카카오프렌즈 컬러링북, C++

https://programmers.co.kr/learn/courses/30/lessons/1829 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr #include #include using namespace std; int bfs(int r, int c, bool visit[100][100], int m, int n, vector picture) { int value = picture[r][c]; int count = 0; int dx[] = {-1,1,0,0}; int dy[] = {0,0,-1,1}; qu..

STUDY/Algorithm 2021.06.21

[프로그래머스] 로또의 최고 순위와 최저 순위 python, 2021 Dev-Matching: 웹 백엔드 개발자(상반기)

programmers.co.kr/learn/courses/30/lessons/77484?language=python3 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr def solution(lottos, win_nums): win_nums_set = set(win_nums) lottos_set = set(lottos) correct = win_nums_set & lottos_set incorrect = win_nums_set - lottos_set zero_cou..

STUDY/Algorithm 2021.05.04