본문 바로가기

Algorithm

(55)
[Programmers] 단어 변환 안녕하세요. 이번 포스팅에서는 Programmers 단어 변환 문제를 풀어보도록 하겠습니다. 해당 문제는 https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 위 링크에서 확인하실 수 있습니다. 전형적인 BFS문제입니다. 각 단어를 그래프의 노드로 생각하고, 현재 단어에서 다음 단어로 변환되는 과정이 모두 1이라는 cost가 필요하므로 이 문제는 가중치가 같은 최단거리 문..
[Programmers] 단속 카메라 안녕하세요. 이번 포스팅에서는 Programmers 단속 카메라 문제를 풀어보도록 하겠습니다. 해당 문제는 https://programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 위 링크에서 확인하실 수 있습니다. 대표적인 그리디 구간 문제입니다. 보통 이런 문제는 시작점을 기준으로 정렬 or 끝점을 기준으로 정렬하면 풀이의 실마리를 얻을 수 있습니다. 저는 이 문제를 끝점을 기준으로 정렬한 뒤, 벡터를 탐색하면서 마지막으로 저장된 끝점보다 현재 검사하는 구간의 시작점이 뒤인 경우 끝점을 바꾸어 주고, 결괏값을 추가해주었습니다. #inc..
[Programmers] 섬 연결하기 안녕하세요. 오늘은 Programmers 섬 연결하기 문제를 풀어보도록 하겠습니다. 해당 문제는 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 위 링크에서 확인하실 수 있습니다. 그래프의 최단 신장 거리를 구하는 문제입니다. Kruskal 알고리즘을 활용하여 구할 수 있습니다. 우선 간선 정보를 cost기준 오름차순으로 정렬을 한 뒤, 가장 비용이 적은 간선부터 추가합니다. 여기서 주의하실 점이 간선을 추가했는데, 사이클이 발생 즉 이미 연결된 두 노드 사이에 추가로 간선을 추가하면 안 되기 때문에, 간선..
[Programmers] 위클리 챌린지 6 안녕하세요. 오늘은 위클리 챌린지 6 해설을 해보도록 하겠습니다. https://programmers.co.kr/learn/courses/30/lessons/85002 코딩테스트 연습 - 6주차 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 해당 문제는 위 링크에서 확인하실 수 있습니다. 이 문제는 정렬을 잘 활용할 수 있는지 묻는 문제입니다. 적절한 구조체를 선언하여 리스트에 저장한 뒤, 문제의 조건에 맞추어 정렬해주시면 됩니다. 문제의 조건이 전체 승률이 높은 복서의 번호가 앞쪽으로 갑니다. 아직 ..
[Programmers] 합승 택시 요금 안녕하세요. 오늘은 Programmers 합승 택시 요금을 풀어보도록 하겠습니다. 해당 문제는 https://programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers..
[Programmers] 방금 그곡 안녕하세요. 이번 포스팅에서는 Programmers 방금 그 곡이라는 문제를 풀어보도록 하겠습니다. 해당 문제는 https://programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr 위 링크에서 확인하실 수 있습니다. 우선... 이 문제가 문자열 + 구현인데, #이 붙어서 굉장히 복잡했습니다. 결과적으로 깡으로 구현하는것을 성공하긴 했습니다만... 코드를 보시면 이게 좋지 않다는 것을 아실 겁니다. #include u..
BeakJoon 15591 MooTube (Silver) 안녕하세요. 이번 포스팅에서는 백준 15591번 MooTube 문제를 풀어보도록 하겠습니다. https://www.acmicpc.net/problem/15591 15591번: MooTube (Silver) 농부 존은 1번 동영상과 2번 동영상이 USADO 3을 가지고, 2번 동영상과 3번 동영상이 USADO 2를 가지고, 2번 동영상과 4번 동영상이 USADO 4를 가진다고 했다. 이것에 기반해서 1번 동영상과 3번 동영상의 www.acmicpc.net 해당 문제는 위 링크를 통해 확인하실 수 있습니다. 너무 쉽게 생각했다가... 낭패 본 문제입니다. 우선 그래프에 가중치가 존재해서, 당연히 다익스트라이겠거니 했는데, 그냥 BFS탐색으로 구현하시면 됩니다. 구현 로직은 시작점 출발 -> 연결된 노드중에 ..
[Programmers] 후보키 안녕하세요. 이번 포스팅에서는 Programmers 후보 키 문제를 풀어보도록 하겠습니다. 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 위 링크에서 문제를 확인하실 수 있습니다. 이 문제는 2019 KAKAO BLIND 채용 기출 문제이며, 그나마 쉬운 편인데 그래도 어렵습니다... ..