본문 바로가기

algorithm/프로그래머스

(40)
프로그래머스_여행경로(C++) programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr [문제 풀이] DFS를 이용하여 문제를 풀었습니다. 이 문제는 공항을 잇는 경로들이 주어지고 모든 공항을 잇는 경로 중 알파벳 순이 가장 빠른 경로를 찾는 문제입니다. 문제를 푸는 방법은 주어진 경로들을 알파벳 순으로 정렬하여 알파벳 순으로 경로들을 확인하면서 가장 먼저 나오는 경로를 찾는 방법입니다. 코드 설명 tickets 백터를 알파벳 ..
프로그래머스_기능개발(C++, JAVA) programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr [문제 풀이] queue을 이용하여 문제를 풀었습니다. 이 문제는 함께 배포될 수 있는 작업의 수를 각각 구하는 문제입니다. 작업이 배포되기 위해서는 아래의 조건을 만족하여야 합니다. 진행 중인 작업 + 작업 속도 * 작업일 >= 100을 만족해야 합니다. 완료되지 않은 작업이 앞에 존재하지 않아야 합니다. 완료된 작업 중 배포되지 않은 작업이 뒤이어 존재한다면(연속적..
프로그래머스_베스트앨범(C++, JAVA) programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr [문제 풀이] map을 이용하여 문제를 풀었습니다. 이 문제는 아래의 조건을 만족하는 값을 찾는 것입니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 주의할 점은 같은 장르 안에서는 최대 2개까지만 선택할 수 있다는 것입니다. 예를..
프로그래머스_전화번호 목록(C++, JAVA) programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr [문제 풀이] set을 이용하여 문제를 풀었습니다. 이 문제는 전화번호 목록 중에 접두어로써 존재하는 번호가 있는지를 찾는 문제입니다. 짧은 시간 안에 번호의 존재를 찾기 위해 set을 이용하여 전화번호 목록을 저장하였고 전화번호 리스트를 순회하며 길이가 N인 번호에 대해 0 ~N까지의 번호 중 set에 존재하는 번호가 있는지 찾아주었습니다. [C++] #include #..
프로그래머스_완주하지 못한 선수(C++, java) programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr [문제 풀이] map을 이용하여 문제를 풀었습니다. 이 문제는 마라톤에 참여한 선수 중에 완주를 하지 못한 지원자를 찾는 문제입니다. 지원자 중에 동명이인이 존재 할 수도 있습니다. 문제를 푸는 방식은 입력으로 주어진 competition 벡터를 map에 넣어 이름들을 세어줍니다. 그 후 participant 백터를 순회하며 존재하면 빼주고 map에 존재하..
프로그래머스_주식가격(C++, JAVA) programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr [C++] #include #include using namespace std; vector solution(vector prices) { vector answer; for(int i = 0; i < prices.size(); i++){ int cnt = 0; for(int j = i + 1; j < prices.size(); j++)..
프로그래머스_위장(C++, JAVA) programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr [문제 풀이] Map을 이용하여 문제를 풀었습니다. 이 문제는 서로 다른 의상의 종류를 선택해 나올 수 있는 모든 경우의 수를 찾는 문제 였습니다. 문제를 풀기 위해 Map에 의상의 종류의 개수를 저장해 줍니다. 그 후 의상의 개수를 곱해서 경우의 수를 구하고 아무것도 입지 않은 경우를 빼줍니다. [C++] #include #include #include #include #include using namespace std; map spy; int solution(vector clothes) { int answer = 1; for(int i = 0; i < clo..
프로그래머스_네트워크(C++) programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr [문제 풀이] DFS를 이용하여 문제를 풀었습니다. 이 문제는 컴퓨터를 연결하는 간선의 정보가 입력으로 들어왔을 때 서로 직간접적으로 연결된 그래프의 그룹의 개수 찾는 문제입니다. A와 직접 연결된 정점들과 정점들의 연결된 컴퓨터를 탐색하는 방법으로 문제를 해결했습니다. 문제의 로직은 반복문을 돌면서 방문하지 않은 컴퓨터라면 DFS에 인덱스값을 전달하여 연결된 컴퓨터들을..