전체 글224 Kotlin 기본 문법 5 : 배열 목차 개요 전통적인 프로그래밍 언어에서의 배열은 같은 타입의 변수들을 원소로 갖는 유한집합으로 정의된다. Kotlin의 경우에는 기본적인 개념은 비슷하지만 약간의 차이가 있는데 모든 자료형이 참조 타입, 즉 클래스이기 때문에 자료형의 종류에 구애받지 않고 모든 자료형을 담을 수 있는 배열도 정의가 가능하다는 점이다. 이번 포스트에서는 Kotlin의 배열에 대해 정리하고자 한다. Kotlin에서의 배열 선언 Kotlin은 전통적인 프로그래밍 언어들이 일반적으로 사용하는 자료형이나 식별자 뒤에 대괄호를 붙이는 방식으로 배열을 선언할 수 없다. Kotlin에서는 전통적인 방식이 아닌 다른 방법으로 배열을 선언해야 하는데 이 방법으로는 크게 5가지가 있다. arrayOf() 자료형ArrayOf() ex)intA.. 2022. 11. 25. [Java] 프로그래머스 : 더 맵게 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 힙 트리(heap tree)를 사용하는 문제다. 입출력 예의 설명에 따르면 모든 음식의 스코빌 지수가 K이상이 되지 않았을 때는 문제의 조건에 따라 만들어진 새로운 음식도 섞이는 대상이 될 수 있다. 스코빌 지수가 가장 낮은 두 수를 지속적으로 뽑아내고 새로운 음식을 집어넣으면서 정렬을 해야하는데, 일반적인 배열이나 리스트를 사용하면 음식을 섞을 때마다 매번 정렬을 하게 되면 시간복잡도 상으로 굉장한 손해를 보게 된다. 따라서, 힙 트리를 사용하는 것이 바람직하다. 힙 트리 방식으로 동작하는 대표적.. 2022. 11. 24. [Kotlin] 백준 1064 : 평행사변형 문제 링크 1064번: 평행사변형 평행사변형은 평행한 두 변을 가진 사각형이다. 세 개의 서로 다른 점이 주어진다. A(xA,yA), B(xB,yB), C(xC,yC) 이때, 적절히 점 D를 찾아서 네 점으로 평행사변형을 만들면 된다. 이때, D가 여러 개 나 www.acmicpc.net 문제 해설 점 3개가 주어졌을 때 만들어지는 평행사변형 중 가장 긴 둘레와 가장 짧은 둘레 길이의 차이를 구하는 문제다. 점 3개가 주어지면 위 그림과 같이 3개의 변이 만들어지는데, 평행사변형은 마주 보는 변의 길이가 같으므로 두 변의 길이의 합에 2를 곱한 값이 둘레의 길이가 된다. 가장 큰 평행사변형의 둘레와 가장 작은 평행사변형의 둘레의 차이만 구하면 되기 때문에 3개의 변 중에 가장 긴 변의 길이에서 가장 짧은.. 2022. 11. 24. [Kotlin] 백준 1010 : 다리 놓기 문제 링크 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 문제 해설 문제의 결론만 따지자면 mCn을 구하는 문제다. 강 서쪽의 n개의 사이트를 모두 선택하여 강 동쪽의 임의의 m개의 사이트에 하나씩 연결해야한다. n ≤ m이므로 m개 중 n개를 선택하는 경우의 수와 같다는 것을 알 수 있다. 여기서 다리가 겹쳐질 수 없다는 조건이 있는데 이에 대한 예시는 다음 그림과 같은 두 경우를 들어보겠다. 각 경우를 배열로 나타내면 첫번째는 [1, 2, 3], 두번째는 [2, 3, .. 2022. 11. 24. 한글 식별자에 대해 관련 논문 양단희, Java에서 한글 식별자 사용에 관한 연구 개요 얼마 전 Kotlin에 대해 이것저것 건드려보다가 Java와 Kotlin을 비롯한 대다수의 언어가 상당히 오래전부터 유니코드 문자를 식별자의 이름으로 지원한다는 사실을 알게되었다. 처음 프로그래밍 언어를 배우기 시작할 당시에만 해도 식별자로는 오직 알파벳과 숫자, 언더스코어(_), 달러표시($)만 사용할 수 있다고 배웠다. 그런데 위 논문에 따르면 이미 2000년 경 전후에 대부분의 프로그래밍 언어가 알파벳 뿐만 아니라 한글, 한자, 일본어 등 다국어 식별자 사용을 지원하였다고 한다. 즉, 내가 처음 프로그래밍 언어를 배우던 그 당시에도 이미 많은 언어가 한글 식별자 사용을 지원했다는 것이다. C, C++, Java, Python, Ko.. 2022. 11. 24. Kotlin 기본 문법 4 : 조건문과 반복문 목차 개요 Kotlin에서도 Java와 비슷하게 조건문과 반복문을 사용할 수 있다. 다만 세부적인 사용법에서 차이가 있고, 조건문의 경우에는 Java에서는 불가능하지만 Kotlin에서는 가능한 사용법이 있으므로 이에 대해 정리하고자 한다. 조건문 조건문은 주어진 조건식의 결과에 따라 이후에 따라오는 코드 블럭의 실행 여부를 결정하는 구문을 의미한다. Kotlin의 조건문에는 아래의 두 가지가 있다. if ... else if ... else는 여러 프로그래밍 언어에서 볼 수 있는 전통적인 조건문이다. 주어진 조건 식의 결과에 따라 if 또는 else 이후의 코드 블럭이 실행된다. 여러 조건을 걸어서 조건문을 사용하고 싶다면 else if를 사용하면 된다. 이 경우에는 이전 조건식을 먼저 검사하고 그 결과.. 2022. 11. 23. [Kotlin] 백준 1094 : 막대기 문제 링크 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대 www.acmicpc.net 문제 해설 간단한 비트마스킹 문제다. 지문을 보면 64에서 반복적으로 연산을 진행하여 더한 횟수를 구해야할 것 같지만 문제의 조건을 보면 시작하는 막대 길이가 64(26)cm라는 점이 명시되어 있다. 즉, 이전 막대를 반으로 나눈 새 막대는 모두 2의 거듭제곱수라는 사실을 알 수 있다. 다시 말해, 나눠진 각 막대는 2진수로 표현하면 모두 다른 자리에 1이 하나만 존재하므로 X를 2진수로 바꿨을 때 1의 개수가 곧 문제의 답이 된다. Code fu.. 2022. 11. 23. [Kotlin] 백준 1308 : D-Day 문제 링크 1308번: D-Day 첫째 줄에 오늘의 날짜가 주어지고, 두 번째 줄에 D-Day인 날의 날짜가 주어진다. 날짜는 연도, 월, 일순으로 주어지며, 공백으로 구분한다. 입력 범위는 1년 1월 1일부터 9999년 12월 31일 까지 이다. www.acmicpc.net 문제 해설 날짜 계산 문제다. 처음에는 단순히 날짜만 계산하면 될 것이라 생각하고 두 입력을 시간값으로 파싱하여 그 차이가 1000년 이상인 경우만 생각했다가 틀렸습니다가 나왔다. 원인을 분석해보니 단순히 날짜의 차이만 계산하다보니 중간의 수많은 윤년의 존재로 인해 y+1000년 m월 d일 이전의 날짜인데도 365,000일이 넘는 경우가 발생하여 gg를 출력한 것이다. 그리하여 원시적인 방법으로 일수를 계산하는 것으로 해결하는 쪽으.. 2022. 11. 23. 이전 1 ··· 24 25 26 27 28 다음