본문 바로가기

728x90

알고리즘

(102)
[BOJ][KOTLIN] 10809 알파벳 찾기 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. 예제 입력1 baekjoon 예제 출력1 1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -1 7 5 -1..
[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..