프로그래머스
-
[프로그래머스][Kotlin] 큰 수 만들기프로그래머스 2023. 6. 5. 18:51
해당 문제는 작성하는 사람에 따라 조금 다르겠지만 저의 경우는 데크와 카운터를 이용하여 작성하였습니다. 처음에 해당 문제를 보고나서 반복문은 1번만 사용하는 코드로 작성을 해야 시간복잡도에서 문제 없이 진행 될 수 있음을 알았기에 처음에 작성하는 것에 있어서는 문제가 없었습니다. 그런데 낮은수를 제거할때 자릿수 계산에서 식이 딱 떠오르지 않아 손으로 그려보면서 자체디버깅을 하고 있었는데 생각해보니 큰 수를 만들려면 뒤에 큰수가 얼마나 있던 앞에 작은 수가 없어야 된다는 규칙과 앞에서 작은수를 제거하면서 k 만큰 제거 한다면 해당 수가 가장 큰 수임을 확인할 수 있었습니다. 해당 방식으로 코드를 작성하여 통과 하였습니다. 하기는 제가 작성한 코드와 실행결과 입니다. import java.util.Array..
-
[프로그래머스][Kotlin][LV0][코딩 기초 트레이닝] 문제 모음 // 04/21 추가// 04/25 추가 // 04/30 추가프로그래머스 2023. 4. 30. 04:01
안드로이드 스튜디오를 공부하다가 오랜만에 프로그래머스에 접속하였는데 문제들이 조금 업데이트 되어있어, 풀어봤습니다. 기초라서 그런지 뭔가 처음부터 복습한다는 느낌을 받았습니다. 기초문제들이 많이 추가 되어 아직 다 풀지는 못하였지만, 해당 게시글에 추가하는 형태로 작성 할 수 있도록 하겠습니다. ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ추가 코드 작성 시 그냥 생각나는대로 작성하여 최적화된 코드가 아님을 말씀드립니다. 문제명 나머지 구하기 class Solution { fun solution(num1: Int, num2: Int) = num1 % num2 } 문제명 두 수의 차 class Solution { fun solution(num1: Int, num2: Int) = num1 - num2 } 문제명 두 수의 곱 cl..
-
[프로그래머스][Kotlin][코딩 기초 트레이닝] 배열 조각하기프로그래머스 2023. 4. 23. 00:40
해당 문제는 원래대로라면 코딩 기초 트레이닝모음 글에 추가를 하려고 하였었으나, 제가 작성을 잘못한것인지.... sliceArray()을 사용하여 작성하였었으나 자꾸만 실패가 나와 내가 기초내용을 잘못알고 있었나? 라고도 생각했지만 아무리 생각을 해봐도 실패가 나오는 증상이 스스로 말이 안되며,이해가 안되었기에 질문하기에 올라온 글들을 한번 봤더니.... 저랑 비슷한 질문들이 있었습니다. 그래서 질문글에서 추천해준 투포인트 개념을 사용하여 해당 문제를 통과 할 수 있었습니다. 아마도 테스트 자료 중 "query의 각 원소는 0보다 크거나 같고 남아있는 arr의 길이 보다 작습니다." 해당 조건이 아닌 자료가 있을 거라고 추측이 됩니다. 진짜 해당 조건이 맞다면 sliceArray() 사용하여 작성하였을 ..
-
[프로그래머스][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]가장 먼 노드프로그래머스 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]연속 펄스 부분 수열의 합프로그래머스 2023. 4. 11. 14:55
해당 문제는 연속 펄스 부분 수열의 합 중 가장 큰 값을 return 하는 문제입니다. 저는 처음에는 세크먼트트리를 연습할 겸해서 시간 초과가 발생할 것 같은 제한조건 이였지만, 세그먼트트리를 이용하여 펄스 수열이 1,-1 로 시작되는 케이스에 따라 2개를 만들어 갱신 및 조회 하는 방법으로 사용하였고, 그렇게 시간 초과가 발생하여 실패 하였습니다. 세크먼트트리로 작성 시 제가 연습이 부족하여 그런 것일 수도 있음을 말씀드립니다. 맘같아서는 연습했던 코드도 같이 올리고 싶지만 실수로 날려버려 하기에는 통과한 코드만 있습니다. -----잡설 -----본문 해당 문제는 부분 합이 가장 큰 값을 리턴하는 것인데 생각해보면 가장 큰 값을 예상해보면 음수들을 더하는 것이 아닌 양수들의 합임을 알 수 있습니다. 다..