분류 전체보기
-
[프로그래머스][Kotlin] 2019 카카오 개발자 겨울 인턴십 호텔 방 배정프로그래머스 2023. 4. 17. 16:30
해당 문제는 유니온파인드 알고리즘 중 파인드의 개념과 map의 개념을 응용하여 작성 할 수 있습니다. 문제를 간단히 설명하자면 1.한 번에 한 명씩 신청한 순서대로 방을 배정합니다. 2.고객은 투숙하기 원하는 방 번호를 제출합니다. 3.고객이 원하는 방이 비어 있다면 즉시 배정합니다. 4.고객이 원하는 방이 이미 배정되어 있으면 원하는 방보다 번호가 크면서 비어있는 방 중 가장 번호가 작은 방을 배정합니다. 이때 방이 총 10개이고, 고객들이 원하는 방 번호가 순서대로 [1, 3, 4, 1, 3, 1] 일 경우 다음과 같이 방을 배정받게 됩니다. 배정 받은 방 번호는 [1,3,4,2,5,6] 입니다. 예를 들어 1번 고객이 1번방을 원할 경우 1번방이 map 내 키값이 없다면 1번방을 배정 후 1번방이 ..
-
[프로그래머스][Kotlin] 요격 시스템프로그래머스 2023. 4. 15. 22:23
해당 문제는 스케줄링문제에 대해서 알고 있는 분이라면 쉽게 통과 할 수 있는 문제였습니다. 문제를 요약하자면 즉 여러개의 선이 있을 때 그 선들을 수직으로 이을 수 있는 선들의 갯수 중 최소값을 찾는 문제입니다. 해당 문제와 비슷한 문제를 한번 작성했었던 적이 있습니다. https://want-kotlin-pro.tistory.com/143 [백준][Kotlin]1931번 회의실 배정 해당 문제는 주어진 자료를 끝나는 시간이 빠른 순으로 정렬한 뒤에 끝나는 시간이 같을 경우 시작시간이 빠른 순으로 정렬한 뒤에 반복문을 진행 하면서 현재 진행되고 있는 회의의 끝나는 시 want-kotlin-pro.tistory.com 백준의 회의실 배정과 비슷한 문제 였습니다. 입력값으로 받은 targets를 e의 값이 ..
-
[백준][Kotlin] 1516번 게임 개발백준 2023. 4. 14. 17:28
해당 문제는 위상정렬을 사용하여 작성 할 수 있었습니다. 해당 문제 통과에 대한 첫번째 포인트로는 "물론, 어떤 건물을 짓기 위해서 다른 건물을 먼저 지어야 할 수도 있기 때문에 문제가 단순하지만은 않을 수도 있다" 해당 문구를 보고 위상 정렬을 떠올리는 것입니다. 두번째로는 추후 건물의 건설 시간을 업데이트 하는 로직을 잘 생각해야 된다는 것이다. 저 또한 업데이트 하는 로직에 있어 처음에 별 생각하지 않고 코드를 작성하였다가 시간을 낭비했었습니다. 해당 방법은 위상 정렬을 실행하면서 각 건물을 짓는 데 걸리는 시간을 업데이트 할 때 Math.max() 함수를 사용하여 현재 건물에 저장된 최대 시간과 이전 건물에 저장된 최대시간+현재 건물의 생산시간을 비교하여 건물을 짓는데 최대 시간을 구합니다. 하기..
-
[THCHIT] 앱 스쿨 2기 : Android 지원 및 합격 후기[THEC!T] 앱 스쿨2기 : Android 2023. 4. 14. 16:09
신청배경 코틀린을 공부하면서 알고리즘과 안드로이드 스튜디오를 이용한 애플리케이션 제작방법에 대해서 책 과 인프런 내 강의를 통해서 독학을 했던 가장 컸던 이유는 국비지원과정 중에서 원하는 과정이 없었던 이유가 가장 컸습니다. 처음에는 우아한 테크 코스5기 안드로이드 과정을 신청하려고 했었으나, 저의 부주의로 인하여 모집하는 소식 조차 듣지 못하고 해당 과정이 열렸다는 사실을 모집신청기간이 끝나고 나서야 알게 되었었습니다...... 그 날은 아직 생각해도 스스로에게 너무 어이가 없고 화가나고 우울했던 부정적 감정들이 피크를 찍었던 날이였습니다.ㅠㅜㅠㅜ 그렇지만 계속 우울해 하고 있으면 안될 것 같다는 생각이 들어 그 이후로 계속 알고리즘 공부와 안드로이드 스튜디오를 사용한 앱 제작 방법에 대해서 공부를 하..
-
[백준][Kotlin] 2252번 줄 세우기백준 2023. 4. 13. 14:25
해당 문제는 위상 정렬을 이용하여 작성 할 수 있는 문제 였습니다. 위상 정렬 (Topological sorting)은 유향 그래프에서 정점들을 순서대로 나열하는 것을 말합니다. 이때, 그래프에서 간선은 항상 정점들 사이의 의존 관계를 나타내며, 위상 정렬은 이러한 의존 관계를 지켜가며 모든 정점을 나열하는 작업입니다. 위상 정렬의 핵심 아이디어는 "진입 차수(in-degree)" 개념입니다. 정점의 진입 차수란 그래프에서 들어오는 간선의 수를 의미합니다. 위상 정렬에서는 진입 차수가 0인 정점을 선택하여 정렬 순서에 추가하고, 이 정점과 연결된 간선을 제거한 뒤에 남은 그래프에서 다시 진입 차수가 0인 정점을 선택하여 반복적으로 정렬합니다. 만약, 그래프가 사이클을 포함하고 있다면, 위상 정렬을 할 수..
-
[프로그래머스][Kotlin]가장 먼 노드프로그래머스 2023. 4. 12. 19:06
해당 문제는 BFS 사용하여 작성 할 수 있으며, 작성 시 주의 할 점은 출발 점은 항상 1번 노드라는 점과 BFS를 공부하신 분들은 알겠지만 방문처리 등등 은 deque에 넣을 때 동시에 해야 된다는 점입니다. 하기는 제가 작성한 코드와 실행 결과 입니다. import java.util.ArrayDeque class Solution { fun solution(n: Int, edge: Array): Int { var len = IntArray(n+1){0} // 거리를 저장할 배열 var node = Array(n+1,{ArrayList()}) var visit = BooleanArray(n+1){true} edge.forEach { node[it[0]].add(it[1]) node[it[1]].add(..
-
[프로그래머스][Kotlin]겹치는 선분의 길이프로그래머스 2023. 4. 12. 18:36
해당 문제는 겹치는 구간의 길이를 리턴하는 문제 입니다. 포인트는 겹치는 구간의 길이를 구할 때 시작하는 점은 길이를 셀때 무의미 하다는 점 입니다. 하기는 작성한 코드와 제출 결과 입니다. class Solution { fun solution(lines: Array): Int { var answer: Int = 0 var arr = IntArray(201){0} for(i in 0 .. lines.size-1){ for(j in lines[i][0]+1 .. lines[i][1]){ arr[j+100]++ } } answer += arr.count{e-> e >= 2} return answer } } 테스트 1 〉 통과 (0.03ms, 63MB) 테스트 2 〉 통과 (0.03ms, 61.5MB) 테스트..
-
[백준][Kotlin]1043번 거짓말백준 2023. 4. 12. 17:23
해당 문제는 유니온파인드를 이용하여 파티별로 거짓말을 할 수 있는지 확인하여 할 수 있는 만큼 카운터 하여 출력하면 되는 문제입니다. 처음에는 거짓말을 할 수 있는 사람들만 있던 파티인데 추후 그 사람들이 진실을 아는 사람들과 파티를 하게 된다면, 지민이는 거짓말 쟁이가 되기 때문에 모든 파티의 참여자들을 확인 한 후 거짓말을 할 수 있는 파티의 수를 카운팅 해야 합니다. 그렇기에 진실을 아는 자들을 한 그룹으로 묶은 뒤에 파티 별 참가자들 중 진실을 아는 자들이 있다면 그 파티에 참가했던 인원들을 모두 만들어 놓은 그룹에 추가하여야 합니다. 그리고 다시 파티정보를 조회하여 해당 파티에 진실을 아는자들 그룹에 포함이 되어있는지 확인 한 후 아무도 없다면 카운팅을 증가 시킵니다. 마지막으로 만약 진실을 아..