728x90

알고리즘/PS - 프로그래머스 46

[프로그래머스 - C++] [1차] 뉴스 클러스터링

https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 풀이 set을 사용해야하나 있지만, 다중 집합이기 때문에 vector를 사용해 풀이하였습니다. 자세한 내용은 주석 참고! #include #include #include #include using namespace std; int solution(string str1, string str2) { int answer = 0; vector s1..

[프로그래머스 - C++] 경주로 건설

https://programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr 풀이 BFS와 DP를 사용하여 구현해 주었습니다. 각각의 위치에 도달할 때 이전 방향이..

[프로그래머스 - C++] 후보키

https://programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr 풀이 저는 재귀함수를 이용해서 브루트포스 방식으로 각각의 조합을 직접 생성해서 문제를 해결하였습니다. 후보키 생성에 있어서는 크기가 1인 후보키부터 relation의 속성 값 수 크기까지 작은 개수로 이루어진 것 부터 생성합니다. 이때 재귀..

[프로그래머스 - C++] 숫자 게임

https://programmers.co.kr/learn/courses/30/lessons/12987 코딩테스트 연습 - 숫자 게임 xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 programmers.co.kr 풀이 브루트포스로 전부 비교했더니 효율성에서 문제가 생겼다. 그래서 우선 A와 B를 모두 오름차순 정렬하고 차례로 비교해가는 방식으로 문제를 해결하였다. #include #include #include using namespace std; int solution(vector A, vector B) { int answer = 0; //정렬 sort(..

[프로그래머스 - C++] 영어 끝말잇기

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 풀이 이 문제는 끝말잇기의 룰대로 확인만 해주면 되는 간단한 문제이다. 따라서 이미 ..

[프로그래머스 - C++] 거리두기 확인하기

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 풀이 이 문제는 대기실이 5개이며 각각 대기실의 크기가 5*5로 매우 작기 때문에 모두 확..

[프로그래머스 - C++] 풍선 터트리기

https://programmers.co.kr/learn/courses/30/lessons/68646 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr 풀이 이 문제는 a의 크기가 1,000,000 이하이기 때문에 시간초과에 유의해야 하는 문제입니다. "왼쪽, 오른쪽 모두에 자신보다 작은 값이 존재하는 경우 절대 남길 수 없다." 라는 규칙이 있습니다. (사실 몰라서 질문게시판에서 힌트 얻음) 따라서 저는 위와 같이 3개의 for문을 사용해 문제를 해결하였습니다. 자세한 내용은 주석을 참고하세용 #include #include #include using namespace std; int solution(vector a..

[프로그래머스 - C++, Java] 예상 대진표

https://programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr 풀이 백준에도 이 문제랑 동일한 문제가 있습니당.. (1,2)는 다음 라운드에서 1이, (3, 4)는 다음 라운드에서 2가 되는데요. 여기서 규칙이 하나 나옵니다. 다음 라운드에 배정되는 숫자 = (현재 숫자 + 1) / 2 따라서 이 규칙을 이용해 다음 라운드에 배정되는 수가 서로 동일해질 때까지 반복하고 동일해질 때 까지 몇번을 반복..

728x90
반응형