Kotlin 9

10866 덱

10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 첫 제출 fun main() = with(System.`in`.bufferedReader()){ val deque = ArrayDeque() repeat(readLine().toInt()){ val token = StringTokenizer(readLine()) when(token.nextToken()){ "push_front" -> { deque.addFirst(token.nextToken().toInt()) } "push_back" -> { d..

1978 소수 찾기

1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 처음 통과한 제출 import java.util.* import kotlin.collections.ArrayList fun main() = with(System.`in`.bufferedReader()){ val arr = ArrayList() val prime = Array(1000){false} repeat(999) {arr.add(it+2)} while(arr.size!=0){ val small = arr[0] prime[small-1] = true var num = 0 var cnt = 0 while(num96ms

2751 수 정렬하기 2

2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 처음 통과한 제출 fun main() = with(System.`in`.bufferedReader()){ val bw = System.out.bufferedWriter() val arr = ArrayList() repeat(readLine().toInt()){ arr.add(readLine().toInt()) } arr.sort() for(i in arr) bw.write("$i\n") bw.flush() bw.close() } 처음에 퀵정렬을 직접 ..

10814 나이순 정렬

10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 처음 통과한 제출 fun main() = with(System.`in`.bufferedReader()){ val arr = ArrayList() repeat(readLine().toInt()){ val input = readLine().split(" ") arr.add(Person(input[0].toInt(), input[1])) } arr.sortWith(compareBy{it.age}) for(person in arr){ println(person) } } cla..

1181 단어 정렬

1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 처음 통과한 제출 import java.util.* fun main() = with(System.`in`.bufferedReader()){ val n = readLine().toInt() var arr = ArrayList() repeat(n){ val str = readLine() if(!arr.contains(str)) arr.add(str) } arr.sortWith(Comparator{ a,b -> when{ a.length < b.length..

2775 부녀회장이 될테야

2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 처음 통과한 제출 fun main() = with(System.`in`.bufferedReader()){ val t = readLine().toInt() repeat(t){ val k = readLine().toInt() val n = readLine().toInt() println(people(k,n)) } } fun people(k: Int, n: Int): Int{ if(k==0) return n var total = 0 for(i in 1..n){ total+=people(k-1,i) } ret..

2675 문자열 반복

2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 처음 통과한 제출 fun main() = with(System.`in`.bufferedReader()){ val T = readLine().toInt() var S = "" for(i in 1..T){ val arr = readLine().split(" ") val R = arr[0].toInt() val str = arr[1].split("") str.forEach{ S+=it.repeat(R) } println(S) S = "" } } 속도상의 문제..

2475 검증수

2475번: 검증수 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들 www.acmicpc.net 처음 통과한 제출 fun main(){ val str = readLine() val list = str!!.split(" ") println(list.map{it.toInt()*it.toInt()}.sum()%10) } collection 함수를 이용해서 풀이하였다. 수정한 제출 fun main(){ val list = readLine()!!.split(" ") println(list.sumOf { it.toInt() * it.toInt() } %10) } l..

2439 별 찍기 - 2

코딩테스트 준비하려면 코틀린 기초를 먼저 다져야한다고 생각해서 코틀린 기초부터 해보려고 한다. 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 처음 통과한 제출 fun main(){ val N = readLine()!!.toInt() for(i in 0 until N){ for(j in N-i downTo 2){ print(" ") } for(j in 0..i){ print("*") } println() } } C언어의 for(int i=0;i128ms