단어 정렬 성공
시간 제한메모리 제한제출정답맞은 사람정답 비율
2 초 | 256 MB | 58584 | 23852 | 17802 | 40.220% |
문제
알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.
- 길이가 짧은 것부터
- 길이가 같으면 사전 순으로
입력
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
출력
조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
import java.util.*
fun main() {
val scanner = Scanner(System.`in`)
var count = 1
val N: Int = scanner.nextLine().toInt()
val set = sortedSetOf<String>(
Comparator { a: String, b: String ->
//println("count: ${count++}")
if (a.length == b.length) {
//println("a: $a , b: $b")
//println(a.compareTo(b))
/*
문자열의 길이가 같은경우, 오름차순으로 정렬
b.compareTo(a)로 코딩하는 경우 내림차순으로 정렬됨
*/
a.compareTo(b)
}
else {
//println("a: $a , b: $b")
// println(a.length - b.length)
// 짧은 문자열이 앞으로 긴문자열이 뒤로
// b.length - a.length 내림차순으로 정렬
a.length - b.length
}
}
)
println(set)
repeat(N) {
set.add(scanner.nextLine())
}
for (word: String in set) {
println(word)
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import java.io.BufferedReader
import java.io.InputStreamReader
import java.util.*
fun main() = with(BufferedReader(InputStreamReader(System.`in`))){
val N = readLine().toInt()
// List 는 배열의 size를 지정해줘야하는데 ArrayList는 배열의 사이즈를 // 지정하지 않아도 되는것 같다. var mlist = ArrayList<String>()
for(i in 1..N){
mlist.add(readLine())
}
println(mlist)
mlist = ArrayList<String>(HashSet<String>(mlist))
println(mlist)
mlist.sort()
println(mlist)
mlist.sortWith(Comparator{data1, data2 -> data1.length - data2.length})
mlist.forEach{
print("$it\n")
}
}
|
cs |
|
|
<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position:relative !important;overflow:auto"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;" cellspacing="0" cellpadding="0"><tr><td style="padding:6px;border-right:2px solid #e5e5e5"><div style="margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="line-height:130%">1</div><div style="line-height:130%">2</div><div style="line-height:130%">3</div><div style="line-height:130%">4</div><div style="line-height:130%">5</div><div style="line-height:130%">6</div><div style="line-height:130%">7</div><div style="line-height:130%">8</div><div style="line-height:130%">9</div><div style="line-height:130%">10</div><div style="line-height:130%">11</div><div style="line-height:130%">12</div><div style="line-height:130%">13</div><div style="line-height:130%">14</div><div style="line-height:130%">15</div><div style="line-height:130%">16</div><div style="line-height:130%">17</div><div style="line-height:130%">18</div><div style="line-height:130%">19</div><div style="line-height:130%">20</div><div style="line-height:130%">21</div></div></td><td style="padding:6px 0;text-align:left"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:130%"><div style="padding:0 6px; white-space:pre; line-height:130%">fun main() {</div><div style="padding:0 6px; white-space:pre; line-height:130%"> val num <span style="color:#0086b3"></span><span style="color:#a71d5d">=</span> readLine()<span style="color:#0086b3"></span><span style="color:#a71d5d">!</span><span style="color:#0086b3"></span><span style="color:#a71d5d">!</span>.toInt()</div><div style="padding:0 6px; white-space:pre; line-height:130%"> val data <span style="color:#0086b3"></span><span style="color:#a71d5d">=</span> mutableListOf<span style="color:#0086b3"></span><span style="color:#a71d5d"><</span><span style="color:#066de2">String</span><span style="color:#a71d5d">></span>()</div><div style="padding:0 6px; white-space:pre; line-height:130%"> <span style="color:#a71d5d">for</span>(i <span style="color:#066de2">in</span> <span style="color:#0099cc">0</span> until num){</div><div style="padding:0 6px; white-space:pre; line-height:130%"> data.<span style="color:#066de2">add</span>(readLine()<span style="color:#0086b3"></span><span style="color:#a71d5d">!</span><span style="color:#0086b3"></span><span style="color:#a71d5d">!</span>)</div><div style="padding:0 6px; white-space:pre; line-height:130%"> }</div><div style="padding:0 6px; white-space:pre; line-height:130%"> <span style="color:#066de2">println</span>(data)</div><div style="padding:0 6px; white-space:pre; line-height:130%"> val sorted <span style="color:#0086b3"></span><span style="color:#a71d5d">=</span> data.distinct() <span style="color:#999999">//중복을 없앰</span></div><div style="padding:0 6px; white-space:pre; line-height:130%"> <span style="color:#066de2">println</span>(sorted)</div><div style="padding:0 6px; white-space:pre; line-height:130%"> val sorted2 <span style="color:#0086b3"></span><span style="color:#a71d5d">=</span> sorted.sortedWith { a, b <span style="color:#0086b3"></span><span style="color:#a71d5d">-</span><span style="color:#0086b3"></span><span style="color:#a71d5d">></span></div><div style="padding:0 6px; white-space:pre; line-height:130%"> <span style="color:#a71d5d">if</span> (a.<span style="color:#066de2">length</span> <span style="color:#0086b3"></span><span style="color:#a71d5d">=</span><span style="color:#0086b3"></span><span style="color:#a71d5d">=</span> b.<span style="color:#066de2">length</span>)</div><div style="padding:0 6px; white-space:pre; line-height:130%"> a.compareTo(b)</div><div style="padding:0 6px; white-space:pre; line-height:130%"> <span style="color:#a71d5d">else</span> {</div><div style="padding:0 6px; white-space:pre; line-height:130%"> a.<span style="color:#066de2">length</span> <span style="color:#0086b3"></span><span style="color:#a71d5d">-</span> b.<span style="color:#066de2">length</span></div><div style="padding:0 6px; white-space:pre; line-height:130%"> }</div><div style="padding:0 6px; white-space:pre; line-height:130%"> }</div><div style="padding:0 6px; white-space:pre; line-height:130%"> <span style="color:#a71d5d">for</span>(element <span style="color:#066de2">in</span> sorted2){</div><div style="padding:0 6px; white-space:pre; line-height:130%"> <span style="color:#066de2">println</span>(element)</div><div style="padding:0 6px; white-space:pre; line-height:130%"> }</div><div style="padding:0 6px; white-space:pre; line-height:130%"> </div><div style="padding:0 6px; white-space:pre; line-height:130%">}</div></div><div style="text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic"><a href="http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter</a></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white"><span style="font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px">cs</span></a></td></tr></table></div>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | fun main() { val num = readLine()!!.toInt() val data = mutableListOf<String>() for(i in 0 until num){ data.add(readLine()!!) } println(data) val sorted = data.distinct() //중복을 없앰 println(sorted) val sorted2 = sorted.sortedWith { a, b -> if (a.length == b.length) a.compareTo(b) else { a.length - b.length } } for(element in sorted2){ println(element) } } | cs |
'알고리즘 공부 > 미분류' 카테고리의 다른 글
백준 1436번 with Kotlin #문자열에 있는 내용 부분적 체크 (0) | 2021.07.09 |
---|---|
백준 10250번 with Kotlin (0) | 2021.07.09 |
백준 1018번 with Kotlin #다차원의 배열 #minOrNull #함수 파라미터 (0) | 2021.07.08 |
백준 10809번 with Kotlin (0) | 2021.07.08 |
백준 10171 with Kotlin #여러줄인 긴 문자열 출력 (0) | 2021.07.07 |