본문 바로가기

728x90

전체 글

(229)
[KOTLIN] 로또의 최고 순위와 최저 순위 - https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 문제 설명 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 로또..
[KOTLIN] 신고 결과 받기 - https://programmers.co.kr/learn/courses/30/lessons/92334 [코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr](https://programmers.co.kr/learn/courses/30/lessons/92334) 문제설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서..
[백준][KOTLIN] 13308 주유소 - https://www.acmicpc.net/problem/13308 13308번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 수와 도로의 수를 나타내는 정수 N(2 ≤ N ≤ 2,500)과 정수 M(1 ≤ M ≤ 4,000)이 주어진다. 다음 줄에 각 도시 주유소의 리터당 가격이 도 www.acmicpc.net 풀이 1. 각 도로의 거리가 가중치가 있다 : 다익스트라 알고리즘 이용 2. 각 도시의 주유비가 다르다 : 각 도시까지 주유비에 따른 최소 비용을 저장하는 동적 프로그래밍(dp[i][j] : i 도시까지 j 주유비로 가는 최소 비용) 코드 import java.io.* import java.util.* fun main(args: Array) { val br = Buff..
[알고리즘][KOTLIN] 다익스트라(w. 우선순위큐, 인접 리스트) [알고리즘][KOTLIN] 다익스트라 정의 최단 경로를 찾는 그래프(DFS, BFS)알고리즘에서 각 경로에 가중치가 있어 최소 가중치의 경로를 찾는 알고리즘 그래프 알고리즘으로 경로를 탐색하고 최소 경로를 저장하기 위해 DP를 활용 jefflim-81.tistory.com 위의 알고리즘을 풀 때 노드 및 간선의 입력이 커지게 되면 기본 다익스트라 알고리즘의 경우 O(n^2) 시간 복잡도를 가지므로 인접 리스트를 이용하여 시간복잡도를 해결해야하는 상황이 발생할 수 있다. 코드 import java.io.* import java.util.* fun main(args: Array) { val br = BufferedReader(InputStreamReader(System.`in`)) // V : 노드의 개수 ..
[알고리즘][KOTLIN] 다익스트라 정의 최단 경로를 찾는 그래프(DFS, BFS)알고리즘에서 각 경로에 가중치가 있어 최소 가중치의 경로를 찾는 알고리즘 그래프 알고리즘으로 경로를 탐색하고 최소 경로를 저장하기 위해 DP를 활용한다. 백준 알고리즘 연관 문제 1162, 1238, 1753, 1916 문제 아래 주어진 각 노드와 연결된 경로에서 시작 시점인 노드1에서 각 노드까지의 최단 거리를 구한다. 연결된 경로와 경로의 가중치를 저장하는 maps 배열을 선언한다.(크기 : n + 1, n은 노드의 개수) DP 를 이용하여 최단 거리를 저장하기 위한 distance 배열을 선언한다.(크기 : n + 1, n은 노드의 개수) 이때 distance 배열의 각 항목은 Int.MAX_VALUE 로 초기화 한다. 최소 거리를 비교하기 위해... ..
[프르그래머스][KOTLIN] 49189 가장 먼 노드 문제 설명 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해주세요. 제한 사항 노드의 개수 n은 2 이상 20,000 이하입니다. 간선은 양방향이며 총 1개 이상 50,000개 이하의 간선이 있습니다. vertex 배열 각 행 [a, b]는 a번 노드와 b번 노드 사이에 간선이 있다는 의미입니다. 입출력 예 n vert..
[백준][KOTLIN] 1629 곱셉 - https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 풀이 - 지수가 0, 1, 홀수, 짝수 일 경우에 대한 점화식을 구한다. 코드 import java.io.* fun main(args: Array) { val br = BufferedReader(InputStreamReader(System.`in`)) val (A, B, C) = br.readLine().split(" ").map { it.toLong() } println("${cal(A, B, C) % C}") } // A : 자연수 // B : 지수 //..
[백준][KOTLIN] 2630 색종이 만들기 - https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 풀이 1. 입력된 정보를 저장하는 2차원 배열을 선언하고 값을 저장한다. 2. 배열의 색이 같은 색인지 확인 한다. 3. 2번에서 같은 색일 경우 Blue 혹은 White Count 를 증가 한다. 4. 2번에서 다른 색일 경우 각 사분면에 따라 분할 한다. 5. 2번 ~ 3번 과정을 색종이가 더 이상 나누어 지지 않을 때까지 반복 한다. 코드 import java...