본문 바로가기

문제 풀이/프로그래머스 (Programmers)51

[C++] 프로그래머스 : [1차] 뉴스 클러스터링 https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 문제 풀이 문자열에 대한 이해가 필요한 문제이다. 저장할 2자리 문자열이 여러 개인지 체크를 하기 위해서 맵을 구현해 저장할 것이다. 두 맵에 모두 2자리 문자열이 없다면 벡터에 push 해준다. 나중에 원소를 확인하기 편리하게 하기 위해 벡터에 중복이 없는 2자리 문자열들을 저장한다. 느낀 점 처음에는 반대로 union된 집합을 맵으로 구.. 2021. 10. 24.
[C++] 프로그래머스 : 행렬 테두리 회전하기 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 문제 풀이 쉬운 편의 구현 문제이다. map[x1][y1+1]에서 값이 다르기 때문에 마지막에 추가해주는 것만 조심하면 된다. 느낀 점 처음에는 너무 간단한 구현이지만 코드가 길어서 의심을 했다. 근데 정말 저게 다다! 코드 #include #include #include using namespace std; int map[101][101]; .. 2021. 10. 12.
[C++] 프로그래머스 : 위클리 챌린지 (9주차) https://programmers.co.kr/learn/courses/30/lessons/86971 코딩테스트 연습 - 9주차 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 문제 풀이 노드의 최대 개수가 100개이므로 전부 탐색을 하면서 간선의 길이를 구해서 따지면 된다. BFS를 통해서 간선의 최대 길이를 따지고 STL::set을 이용해서 각 노드마다 연결된 노드를 저장해준다. 느낀 점 처음에는 전혀 접근하 지를 못해서 조금의 구글링으로 도움을 받았다. 그래프 관련된 문제를 좀 더 많이 풀어봐야 할 것 같다. 코드 #include #include.. 2021. 10. 10.
[C++] 프로그래머스 : 짝지어 제거하기 https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 문제 풀이 괄호 풀기와 비슷하게 스택으로 푸는 문제이다. 비어있거나 스택의 top과 str[i] 다르면 push 하고 아니라면 pop 해준다 끝난 뒤 스택이 비어있다면 1을 반환한다. 느낀 점 처음에 문자열로 풀려고 했는데 바로 스택이 떠올라서 금방 해치웠다! 코드 #include #include using namespace std; stack s;.. 2021. 10. 9.
[C++] 프로그래머스 : 타겟 넘버 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 문제 풀이 따로 벡터를 선언해서 거기에 연산자를 넣어 DFS를 구현한 문제이다! 느낀 점 어렵지는 않았다. 근데 다른 분의 코드(코드2)를 참고해보니 내 코드가 너무나도 직관적으로 구현한 코드 같다. 다음엔 조금 더 응용을 해봐야겠다. 코드1 #include #include using namespace std.. 2021. 10. 8.
[C++] 프로그래머스 : 더 맵게 https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 문제 풀이 우선순위 큐를 사용하면 아주 쉽게 풀 수 있는 문제이다. 큐를 우선 오름차순으로 정렬해준다. 맨 앞에 오는 값들은 스코빌 지수가 작은 순서대로 위치할 것이고 맨 앞의 스코빌 지수가 기준인 K보다 크다면 그 이후의 모든 값들은 K보다 크다. 따라서, 맨 앞의 두 개를 계산해주고 K보다 큰지만 따져주면 된다. 큐의 크기가 1인데 K보다 낮다면.. 2021. 10. 7.