목록Programmers/Level 2 (79)
GitHubSeob
문제 https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 문제풀이 next_permutation과 unordered_set을 이용하여 풀었다. 문자열의 문자의 순서들을 서로 바꿔가며 소수가 몇개인지 찾는 문제이다. 에라토스테네스 체를 이용해서 소수를 미리 구해놓아야되나 싶었는데 숫자의 범위가 9,999,999까지라 매번 구했다. next_permutation을 사용하기 위해 먼저 오름차순으로 숫자들..

문제 https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 문제풀이 현재 탐색하려는 대상이 'P', 'O'일 때만 따지면 된다. 탐색하는 대상 ..

문제 https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 문제풀이 문자열을 문자2개로 쪼개는 get_map 함수, 맵 두개를 가지고 교집합 원소 개수를 구하는 get_int 함수, 맵 두개를 가지고 합집합 원소 개수를 구하는 get_union함수, 총 세 함수를 선언하여 풀었다. 문자열을 쪼개 map에 입력한다. (string은 문자2개, int는 해당 문자열의 개수) map1과 map2가 ..

문제 https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 문제풀이 메뉴의 부분집합들을 구하면서 해당 메뉴가 몇 번 나왔는지를 구해야 한다. 그다음 길이가 같은 메뉴가 여러 개가 있다면 가장 많이 나온 메뉴만 answer에 입력해야 한다. CanMenu라는 bool형 벡터를 선언하여 course 벡터를 탐색하면서 코스요리로 만들 수 있는 메뉴의 개수에 해당하는 부분을 true로 바꾼다. 그다음 부분집합을 구한다. 부..

문제 https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 문제풀이 한 쿼리를 탐색할때마다 nums라는 벡터를 만들어 시작지점부터 시계방향으로 움직여 해당 값을 저장하고, 시작지점에서 한칸 다음으로 움직인 부분부터 nums[idx]값들을 채워나가 회전한것처럼 만들것이다. 먼저 2차원 배열을 1부터 rows * columns 까지의 숫자들로 채운다. 주어진 좌표들은 (1, 1)부터 시작하므로 편의상..

문제 https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 문제풀이 스택을 이용하면 간단하게 풀 수 있다. 스택이 비어있지 않을 때, top부분과 s[idx]이 같다면 pop을 한다. 그 외의 경우는 s[idx]를 스택에 push 한다. 반복문이 종료되었을 때 비어있으면 1, 비어있지 않으면 0을 return 한다. 코드 #include #include using namespace std; int so..

문제 https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 문제풀이 우선순위 큐를 이용해 풀었다. 먼저 벡터의 값들을 우선순위 큐 pq에 옮긴다. greater으로 선언하였기 때문에 오름차순으로 알아서 정렬된다. 우선순위 큐에서 2개씩 꺼내면서 num1 + num*2 인 값을 우선순위 큐에 집어넣는다. 스코빌 지수가 K이상이 됐다면 반복문을 종료하고 카운트 변수인 answer을 return 한다. K이..
문제 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 문제풀이 반복문을 통해 progresses와 speeds를 탐색한다. 변수day를 선언하여 해당 작업이 걸리는 일수를 저장한다. 해당 일에 작업을 할 수 있으면 큐에 저장한다. 해당 일에 작업을 할 수 없으면 큐에 있는 작업의 개수를 answer에 push_back한다. 그 다음 해당 일에 작업하지 못한 작업은 얼마나 걸리는지 계산을 하여 day의 ..

문제 https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 문제풀이 숫자 3개 1, 2, 4를 이용하여 해당 숫자를 변환하는 문제이다. 단순히 3진법으로 변환하기에는 3일 때 몫은 1이고 나머지가 0인데 124 나라의 수로는 4라서 조금 바꿔야 한다. 3의 배수일 때 answer에 4를 더하고 n에 -1을 뺀다. 그 외의 경우는 n을 3으로 나눈 나머지를 string형으로 만들어 더하면 된다. 그리고 마지막에는 reverse를 통해 역순으로 바꿔줘야한다. 코드 #include #include #include using namespace std; string solution(int n) ..