본문 바로가기

전체 글126

[2023-06-14] [프로그래머스 lv1] 카드 뭉치 (Kotlin) 배열 크기가 10보다 작다고 명시되어 있어, contains를 썼습니다. 각 prev값과의 차이가 1이 아닐 경우 tag를 false로 설정합니다. class Solution { fun solution(cards1: Array, cards2: Array, goal: Array): String { var prevOne = -1 var prevTwo = -1 var tag = true for (index in goal.indices){ if (cards1.contains(goal[index])){ val idx = cards1.indexOf(goal[index]) if (Math.abs(idx - prevOne) != 1){ tag = false break } prevOne = idx } if (cards2.. 2023. 6. 14.
[2023-06-14] [프로그래머스 lv1] 대충 만든 자판 (Kotlin) 최소 횟수를 구하는 것이므로, map에 각 알파벳의 따른 등장 순서의 최솟값을 넣어주었습니다. class `lv1 대충 만든 자판` { class Solution { fun solution(keymap: Array, targets: Array): IntArray { val map = mutableMapOf() // 등장 순서의 최솟값 넣어주기 for (i in keymap.indices){ for (j in keymap[i].indices){ map[keymap[i][j]] = Math.min(map.getOrDefault(keymap[i][j], 200), j+1) } } // map에 저장되어 있는 값을 모두 더하여 저장 val ans = IntArray(targets.size) for (i in t.. 2023. 6. 14.
[2023-06-13] [프로그래머스 lv1] 덧칠하기 (Kotlin) 간단한 방식인데 시간이 오래걸렸네요.. 이리저리 시도해보다가 25분 걸렸습니다. class Solution { fun solution(n: Int, m: Int, section: IntArray): Int { var answer: Int = 1 var prev = section[0] // 반복문을 돌며 prev 값과 현재의 값의 거리 차가 m을 넘을 경우 // answer에 1 더하기, prev를 현재의 값을 설정 // 해당 과정 반복 for (index in 1 until section.size){ if (section[index] - prev >= m){ answer += 1 prev = section[index] } } return answer } } 2023. 6. 13.
[2023-06-13] [프로그래머스 lv1] 바탕화면 정리 (Kotlin) class Solution { fun solution(wallpaper: Array): IntArray { // 반복문을 돌며, '#'가 등장할 때마다 좌표 설정해주기 var minX = Int.MAX_VALUE var minY = Int.MAX_VALUE var maxX = 0 var maxY = 0 for (i in wallpaper.indices){ for (j in wallpaper[i].indices){ if (wallpaper[i][j] == '#'){ minX = Math.min(minX, j) minY = Math.min(minY,i) maxX = Math.max(maxX,j) maxY = Math.max(maxY,i) } } } var ans = IntArray(4) ans[0] = mi.. 2023. 6. 13.
[2023-06-13] [프로그래머스 lv1] 공원 산책 (Kotlin) package seventieth class Solution3 { fun solution(park: Array, routes: Array): IntArray { // park 최대 크기와, 시작 좌표 구하기 val w = park.first().length val h = park.size var startX = 0 var startY = 0 for (index in park.indices){ if (park[index].contains('S')){ startX = park[index].indexOf('S') startY = index break } } // park 공원 크기를 벗어났거나, 중간에 장애물이 있으면 continue for (index in routes.indices){ val d = rou.. 2023. 6. 13.
[2023-06-13] [프로그래머스 lv1] 추억 점수 (Kotlin) class Solution { fun solution(name: Array, yearning: IntArray, photo: Array): IntArray { // map에 이름과 추억 점수 저장 val yearningMap = mutableMapOf() for (index in name.indices){ yearningMap[name[index]] = yearning[index] } // 다 더한 값을 배열에 저장 후 리턴 val answer = IntArray(photo.size) for (i in photo.indices){ var sum = 0 for (j in photo[i].indices){ sum += yearningMap.getOrDefault(photo[i][j],0) } answer[i.. 2023. 6. 13.
[2023-06-13] [프로그래머스 lv1] 달리기 경주 (Kotlin) 프로그래머스 문제로 연습하는 것이 확실히 좋은 것 같아요. 코테 연습도 되고, 다른 분의 풀이와 비교해보기 간편해서 너무 좋아요. package seventieth class Solution { fun solution(players: Array, callings: Array): Array { // map에 플레이어의 순위 넣기 val map = mutableMapOf() for (index in players.indices){ map[players[index]] = index } // 순위 바꿔주기 for (index in callings.indices){ val idx = map[callings[index]]!! val prevPlayer = players[idx - 1] players[idx - 1].. 2023. 6. 13.
[2023-06-12] 1769 3의 배수 (Kotlin) 문제 링크: https://www.acmicpc.net/problem/1769 1769번: 3의 배수 문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를 www.acmicpc.net 11분 걸렸습니다. 입력이 한자리 수였을 때의 예외처리를 빼먹어 시간이 더 걸렸네요. package sixtynineth import java.io.* fun main(){ val br = BufferedReader(InputStreamReader(System.`in`)) var x = br.readLine() var count = 0 if (x.length == 1){ println(0).. 2023. 6. 12.