전체 글(110)
-
프로그래머스 알고리즘 Level 2 H-Index 코틀린
H-Index https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 출처: 프로그래머스 (이 포스트는 광고 게시가 없는 비영리, 비상업적 포스트임을 알려드립니다.) 풀이 class Solution { fun solution(citations: IntArray): Int { var answer = 0 val list = mutableListOf() for (i in citations.indices) { if (citations.count { it >=..
2023.03.13 -
프로그래머스 Level 2 카펫
출처: 프로그래머스 https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카펫 문제 풀이 class Solution { fun solution(brown: Int, yellow: Int): IntArray { var width = 3 var height = 3 while (width >= height) { val y = (width - 2) * (height - 2) val b = width * height - y if (y == yellow && ..
2023.03.13 -
다익스트라(Dijkstra) 알고리즘 - Kotlin
다익스트라 알고리즘 다익스트라 알고리즘은 무엇인가요?? 다익스트라 알고리즘은 대표적인 최단 경로 탐색 알고리즘입니다. 하나의 정점에서 다른 모든 정점으로 가는 최단 경로를 알려줍니다. 언제 사용하나요?? 말했다시피 목적지로 가기 위한 최단 경로를 구하기 위해 사용합니다. 특징은 음의 간선이 포함되지 않아 현실 세계에 데이터를 가지고 사용하기 좋습니다. 그래서 인공위성 GPS 내비게이션 등 다양한 곳에서 사용합니다. 문제가 그래프로 나와 최단 경로를 구해야 한다면 생각해 볼 만합니다. 왜 사용하나요?? 다익스트라 알고리즘은 다이내믹 프로그래밍입니다. 최단 경로로 가기 위해서는 가는 길도 최단 경로여야 합니다. 이전까지의 최단 경로를 저장해 구하려는 최단 경로를 구하기 때문에 작은 문제를 가지고 큰 문제를 ..
2023.03.07 -
DFS & BFS ( Kotlin )
DFS ( Depth First Search ) 깊이 우선 탐색 / BFS( Breadth First Search ) 너비 우선 탐색 DFS와 BFS는 그래프의 전체를 탐색하는 완전 탐색 알고리즘의 기법 중 하나입니다. 아래에 애니메이션이 있습니다. 그림을 보시면 이해하기 수월하실 것입니다. 왼쪽의 그림은 DFS이고 오른쪽이 BFS 입니다. 먼저 DFS는 맨 위 정점부터 끝에 도달하면 돌아가 분기의 처음으로 돌아가 넘어가는걸 보실 수 있습니다. 이처럼 DFS는 가장 끝까지 가보고 그 다음 경우의 끝까지 계속해서 확인하며 가는 경우입니다. 오른쪽의 BFS는 갈 수 있는 분기를 하나씩 처리하며 가는 경우입니다. a가 b, c 로 갈 수 있고 b는 d,e c는 f,g 로 방문 처리를 하며 끝까지 갈 수 있습니..
2023.03.07 -
이분탐색 파라매트릭 서치 알고리즘 ( Kotlin )
아래에 3개의 문제가 있습니다. 1. 디펜스 게임 https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 시소 짝꿍 https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 3. 입국 심사 ..
2023.03.07 -
플로이드 와샬 ( Floyd Warshall ) 알고리즘 - (Kotlin)
플로이드 와샬 알고리즘 - 최단 거리 알고리즘 (2) 최단 거리 알고리즘 중에 하나인 플로이드 와샬 알고리즘을 알아보겠다. 그래프를 보면 1번에서 5번으로 가기 위한 방법은 아주 많은데 플로이드 와샬 알고리즘은 어떻게 가장 짧은 거리를 알 수 있을까? 그래프 초기화 1 2 3 4 5 6 1 0 5 9 14 many many 2 5 0 36 many 47 many 3 9 36 0 22 55 88 4 14 many 22 0 many 31 5 many 47 55 many 0 11 6 many many 88 31 11 0 먼저 그래프를 초기화한다. 그림은 무방향인데 방향이 있어도 똑같다. 방향이 있다면 없는 방향은 그냥 many라고 생각하고 큰 수를 넣어주든가 하자. 다만 +의 영향으로 Int.Max value..
2023.03.05