목록알고리즘/프로그래머스 (62)
어흥
문제 링크: 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.co.kr 1. 주의할 점 - 모든 정점이 서로 연결되어 있지 않다 - 3번의 다익스트라 알고리..
문제 링크: programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 더보기 0. 유사 문제 www.acmicpc.net/problem/16940 16940번: BFS 스페셜 저지 올바른 순서는 1, 2, 3, 4와 1, 3, 2, 4가 있다. www.acmicpc.net 1. 주의할 점 - 순위가 정해져 있는 조건은? 2. 구현 - 순위가 정해져 있는 경우: 전체 N명에서 현재 위치에서 자기 앞에 A명, 자기 뒤에 B명이 있다면 A+B = N-1인 경우다(자기자신 제외) - 위의 경우를 어떻게 찾을 것인가? → 플로이드 와샬(다익스트라를..
문제 링크: programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 1. 주의할 점 - 다익스트라 알고리즘에 대해 알고 있어야 한다 2. 구현 - 모든 간선에 대한 정보를 V[] 벡터에 담는다 - Check[]를 통해 1번 Node에서 부터 각 Node까지의 거리를 나타내며, 초기에 -1로 초기화한다 - 다익스트라 알고리즘을 통해 Check[] 배열을 모두 구하며, 이 과정에서 가장 먼 거리인 Longest가 초기화될 경우, Answer도 초기화한다. 만약 Longest와 같을 경우, Answer++..
문제 링크: programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 1. 주의할 점 - Map을 통해 String과 Int를 연관시킨다 - 조건에 알맞게 구현한다 2. 구현 - Map m에 사람과 번호를 매칭시킨다 - Map을 통해 각 사람을 등록시킨 사람 Par을 설정한다 - Seller 벡터를 통해 판매원이 전달된 수익을 Money에 할당하고, Cur을 통해 현재 사람을 가리킨다. Cur이 0보다 클때까지 While문을 ..
문제 링크: 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 1. 주의할 점 - 배열을 시계방향으로 한칸씩만 민다 - 매 쿼리마다 최소값을 초기화하고 시작한다 2. 구현 - Arr[][] 배열에 알맞은 숫자들을 미리 할당한다 - Comp() 함수를 통해 최소값을 갱신한다 - 쿼리마다 Mini값을 초기화 시켜준다 - (y1,x1)의 좌표를 Temp에 저장시키고, 중앙을 기준으로 좌하우상 기준으로 한칸씩 민다..
문제 링크: programmers.co.kr/learn/courses/30/lessons/77484?language=cpp 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 1. 주의할 점 - 1개 or 0개 번호 일치시 6등 2. 구현 - Number[] 배열을 통해 로또에서 불린 번호들을 True로 저장한다 - Match와 Zero 변수를 통해 6개의 번호중에서 당첨 번호와 같은 수, 0인 수를 구한다 - Ranking[] 배열을 통해 Ranking[Match+..
문제 링크: 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 1. 주의할 점 - BFS를 통해 해결한다 - Check[][][]를 통해 해당지점에 특..
문제 링크: programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 1. 주의할 점 - 두 포인터를 이용하여 해결한다 - 포인터를 옮길때마다 왼쪽~오른쪽 포인터까지 탐색하지 않도록 한다 2. 구현 - Map을 이용하여 보석과 숫자를 매칭시킨다 - V 벡터를 이용하여 숫자에 해당하는 보석이 몇개 존재하는지 나타낸다 - 0번째 인덱스에 존재하는 보석을 미리 처리하고 시작한다 - While문을 통해 R 포인터가 Gems의 길이보다 작을때까지 수행한다. 내부 While문은 보석 전체가 ..