본문 바로가기

728x90

알고리즘

(101)
[Kotlin] char 를 Int 로 변환 알고리즘 문제를 풀 때 char type 을 Int 값으로 변환해야 할 때가 있다. char 값을 그대로 toInt() 함수를 이용하여 출력을 할 경우 아스키 코드 값이 리턴된다. 실제 Int 값을 얻기 위해서는 아래의 2가지 방법 중 하나를 사용 한다. 방법1 Character.getNumericValue 함수를 이용하여 값을 얻는다.fun main(args: Array) { val sc = Scanner(System.`in`) val N = sc.nextLine().forEach { c -> val result = Character.getNumericValue(c) } } 방법2 아스키 값에서 '0' 을 빼면 실제 Int 값이 반환 된다.fun main(args: Array) { val..
[BOJ][Kotlin] 3052 문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오. 입력 첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다. 출력 첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다. 예제 입력1 1 2 3 4 5 6 7 8 9 10 예제 출력1 10 예제 입력2 42 84 252 420 840 126 42 84 420 126 예제 출력2 1 풀이 배열에 입력을 받고 42로 나눈 나머..
[Kotlin] 배열 * 하나의 변수에 여러 개의 값을 저장하기 위해 사용 * 배열 사용 방법 val list: Array = arrayOf("a", "b", "c") val list = Array(3) {1, 2, 3} * Set/List 차이점 - Set : 중복을 허용하지 않고 요소를 추가 함 - List : 중복을 헝용하고 요소를 차례대로 추가 함
시간 복잡도 계산 하기 정의 시간 복잡도는 문제를 해결하는데 걸리는 시간과 입력의 함수 관계를 가리킨다. (위키백과 출저.) 빅오(Big-O)표기법 알고리즘 실행 시간 분석에 사용되는 대표적인 표기법이다. 최악의 상황을 고려하여 계산하는 표기법이다. 빅오 표기법 종류 O(1) :입력 값이 증가하더라도 수행 시간이 변경없다. fun main(args: Array) { val sc = Scanner(System.`in`) val a = sc.nextInt() val b = sc.nextInt() val c = sc.nextInt() val result = a + b + c println(result) } O(logN) : 로그 복잡도라 불리며 O(1) 다음으로 빠른 복잡도이다. 이진 탐색의 경우 이에 해당 한다. O(N) : 선형..
알고리즘 문제 해결 시 입력 받기 Kotlin 입력 받기 Java 와 동일하게 Scanner 를 이용하여 입력을 받는다. Scanner 객체를 이용하여 System.in 정보를 받아서 처리 한다. Scanner 관련 import 를 추가하고 원하는 입력 타입에 맞게 함수를 사용한다. import java.util.Scanner -> Scanner 사용을 위한 import 추가 ... val sc = Scanner(System.`in`) -> kotlin 에서 in 은 예약어로 사용되고 있기 때문에 구분을 위해서 Java 와 다르게 이와 같이 감싸줘야 한다. val a = sc.nextInt() -> Int 타입 입력을 받을 때 nextInt 함수를 사용한다. ... 입력 타입에 따라 다음과 같은 함수를 사용할 수 있다. 함수 용도 nex..