본문 바로가기
  • 개발하는 곰돌이

배열5

[Kotlin] 코틀린으로 정렬 관련 문제를 풀 때 사용하는 배열이나 리스트를 정렬하는 메소드의 종류 및 각 메소드의 차이 목차 개요 기본적으로 코틀린에서는 배열도 객체로 취급되어 sort()와 같은 메소드를 사용할 수 있다. 그런데 이들 메소드들은 종류에 따라 약간의 차이가 있고, 메소드를 호출한 객체의 타입과 메소드의 종류에 따라 성능도 차이난다. 백준 - 수 정렬하기 5 문제를 푸는데 그냥 단순한 정렬 문제라고 생각했다가 정렬 메소드의 종류에 따라 TLE가 나기도 했고 AC가 나오기도 했다. 이들 메소드들 사이에 무슨 차이가 있길래 무엇을 쓰느냐에 따라 결과가 다르게 나타나는지 궁금해서 내부 구조를 확인해봤는데 생각보다 많은 차이가 있었다. Kotlin 정렬 메소드의 종류 코틀린에서 배열이나 리스트를 정렬하는 메소드는 작동 방식과 결과 타입에 따른 3가지, 정렬 방법에 따른 3가지로 구분할 수 있다. 작동 방식과 결과 .. 2023. 3. 31.
[Kotlin] 백준 2563 : 색종이 문제 링크 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 문제 해설 2차원 배열을 이용하면 쉽게 풀 수 있는 문제다. 2차원 배열에서 한 칸의 넓이를 1이라고 생각하고 문제를 풀어나간다. 문제에 흰색 도화지의 가로, 세로 길이가 각각 100이라고 명시되어 있으므로 100\(\times\)100 크기의 Boolean 배열을 선언한다. 그 후 색종이의 개수만큼 입력받은 색종이의 위치부터 + 10까지의 값을 true로 변환하는 과정을 반복한다. 최종적으로 배열 내의 true의 개수가 색종이가 붙은 영역의 넓이가 된다.. 2022. 12. 7.
[Kotlin] 백준 11723 : 집합 문제 링크 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 문제 해설 단순한 구현 문제지만 메모리 제한이 매우 적다. 주어지는 입력의 수가 1부터 20까지밖에 되지 않으므로 크기가 21인 Byte 배열을 만들어서 구현하였다.(0 : 배열에 없음, 1 : 배열에 있음) Code import java.util.StringTokenizer fun main() = with(System.`in`.bufferedReader()) { val bw = System.out.bufferedWriter() val s = ByteArray(21) var st: Str.. 2022. 12. 5.
[Kotlin] 백준 4948 : 베르트랑 공준 문제 링크 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 문제 해설 어떤 자연수 \(n\)이 주어졌을 때 \(n\) 초과, \(2n\) 이하인 소수의 개수를 구해야하는 문제다. 어떤 수 \(x\) 이하의 모든 소수를 구하는 방법은 에라토스테네스의 체를 이용하는 방법이 있다. 이 문제도 에라토스테네스의 체를 이용하면 손쉽게 해결할 수 있다. 문제의 조건에 따르면 \(n\)의 최대값은 123,456이고, \(2n\) 이하인 소수의 개수를 구해야하므로 최악의 경우에는 246,912 이하인 소수를 구해야 한.. 2022. 11. 29.
Kotlin 기본 문법 5 : 배열 목차 개요 전통적인 프로그래밍 언어에서의 배열은 같은 타입의 변수들을 원소로 갖는 유한집합으로 정의된다. Kotlin의 경우에는 기본적인 개념은 비슷하지만 약간의 차이가 있는데 모든 자료형이 참조 타입, 즉 클래스이기 때문에 자료형의 종류에 구애받지 않고 모든 자료형을 담을 수 있는 배열도 정의가 가능하다는 점이다. 이번 포스트에서는 Kotlin의 배열에 대해 정리하고자 한다. Kotlin에서의 배열 선언 Kotlin은 전통적인 프로그래밍 언어들이 일반적으로 사용하는 자료형이나 식별자 뒤에 대괄호를 붙이는 방식으로 배열을 선언할 수 없다. Kotlin에서는 전통적인 방식이 아닌 다른 방법으로 배열을 선언해야 하는데 이 방법으로는 크게 5가지가 있다. arrayOf() 자료형ArrayOf() ex)intA.. 2022. 11. 25.