문제풀이
-
💡[BOJ 1915/ 코틀린] 가장 큰 정사각형 - DP문제풀이/BOJ 2021. 9. 3. 16:03
백준 1915_가장 큰 정사각형 | 문제 링크 대표적인 동적계획법/동적 프로그래밍 (DP:Dynamic Programming) 문제입니다. 문제 설명 n*m 크기의 0과 1로만 이루어진 이차원 배열이 주어집니다. 이 배열에서 (테두리, 내부 포함) 1로 이루어진 가장 큰 정사각형의 넓이를 구하는 문제입니다. 입력 첫째 줄에 n, m(1 ≤ n, m ≤ 1,000)이 주어진다. 다음 n개의 줄에는 m개의 숫자로 배열이 주어진다. 출력 첫째 줄에 가장 큰 정사각형의 넓이를 출력한다. 전체 코드 fun main() { var n = 0 var m = 0 var maxLen = 0 readLine()!!.split(" ").let { n = it[0].toInt() m = it[1].toInt() } val m..
-
💡[BOJ 20922 / 코틀린] 겹치는 건 싫어 - 투 포인터문제풀이/BOJ 2021. 9. 3. 14:26
백준 20922_겹치는 건 싫어 | 문제 링크 투 포인터 기법을 활용한 문제입니다. 문제 설명 N개의 자연수로 이루어진 수열에서, 같은 수가 K번 이하로 반복되는 최장 연속 부분 수열을 구하는 문제입니다. N은 1~200,000 , K는 1~100 범위의 정수로 주어집니다.각 원소 ai는 1~100,000 범위의 정수로 주어집니다. 입력 첫째 줄에 정수 N과 K가 주어진다. 둘째 줄에는 a1,a2,...an이 주어진다. 출력 조건을 만족하는 최장 연속 부분 수열의 길이를 출력한다. Main 함수 (전체 코드) import java.util.* fun main() { var N:Int = 0 var K:Int = 0 readLine()!!.split(" ").let { N = it[0].toInt() K ..
-
💡[BOJ 21608 / 코틀린] 상어 초등학교 - 구현문제풀이/BOJ 2021. 9. 2. 18:19
백준 21608_상어 초등학교 | 문제 링크 특별한 알고리즘이 아닌 단순한 구현 문제입니다. 문제 설명 N*N 교실에 1번부터 N²번까지의 학생이 한 자리씩 앉습니다. 각 학생의 친한 친구 4명씩을 사전 조사를 통해 파악해놨습니다. 각 학생의 만족도 총합이 가장 큰 좌석 배치 방법을 구하시오. 근처에 친한 친구가 0명이면 만족도는 0이고, 1명이면 1, 2명이면 10, 3명이면 100, 4명이면 1000이다. '근처, 인접'은 사방(四方)을 이야기한다. 규칙의 순서는 다음과 같다. 1. 빈 칸 중 친구가 인접한 칸이 가장 많은 칸으로 자리를 정한다. 2. 1을 만족하는 칸이 여러 개이면, 인접한 칸 중 빈 칸이 가장 많은 칸으로 자리를 정한다. 3. 2를 만족하는 칸도 여러 개인 경우에는 행의 번호가 가..
-
[프로그래머스] 프린터 (Kotlin)문제풀이/프로그래머스 2021. 7. 2. 23:10
문제 링크 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 두 가지 방법으로 풀었습니다. 첫 번째 방법은 ArrayList를 이용한 큐의 구현, 두 번째 방법은 java.util.ArrayDeque를 import하여 사용. 로직은 동일하며, 다른 사람의 풀이에서도 크게 획기적인 방법은 찾지 못했습니다. 퍼포먼스는 케이스마다 조금씩 다르나, 평균적으로 아주 약간 ArrayDeque를 이용한 두 번째 방법이 더 좋게 나왔습니다. 내 풀이(1) class Solution { fun solution(priorities:..
-
[프로그래머스] 베스트앨범 (Kotlin)문제풀이/프로그래머스 2021. 6. 29. 22:45
문제 링크 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 내 코드 (failed) 파이썬으로 이미 풀어봤던 문제기 때문에 위풍당당하게 쭉쭉 코드를 적어나갔으나.... 여지없이 나를 붙잡는 UNSAFE_CALL 과 TYPE_MISMATCH. 일단 기록해둔 뒤 나중에 문제점을 살펴보겠습니다. class Solution { fun solution(genres: Array, plays: IntArray): IntArray { var answer = intArrayOf() val genre_play = HashMa..
-
[프로그래머스] 위장 (Kotlin)문제풀이/프로그래머스 2021. 6. 28. 15:20
https://programmers.co.kr/learn/courses/30/lessons/42578?language=kotlin 코딩테스트 연습 - 위장 programmers.co.kr 내 풀이 풀이(1) class Solution { fun solution(clothes: Array): Int { var answer = 1 val sep = HashMap() for (cloth in clothes) { sep[cloth[1]]?.let { sep.put(cloth[1], it + 1) } ?: sep.put(cloth[1], 1) } for (i in sep) { answer *= (i.value + 1) } return (answer - 1) } } ※ let 함수란? 💡 [Kotlin/코틀린] l..
-
[프로그래머스] 베스트앨범 (Python)문제풀이/프로그래머스 2021. 6. 21. 16:04
https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr def find_best_and_pop(d): best = list(d.keys())[0] for key in d: if d[key] > d[best]: best = key d.pop(best) return best def last(lst, idx): retbool = False ret = 0 if len(lst) >= idx + 2: if lst[idx][0..
-
💡 [BOJ 1012] 유기농 배추문제풀이/BOJ 2021. 6. 15. 10:03
문제) https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net [내 풀이] import sys # 재귀 제한(BOJ default 1000) 확장 sys.setrecursionlimit(10**9) # 첫줄 테이스케이스 개수 및 정보 입력 T = int(sys.stdin.readline()) for t in range(T): M, N, K = map(int, sys.stdin.readline().split(" ")) # table 초기화 table = [[0 fo..