공부 일지/문제풀이
별찍기
Joshbla
2023. 3. 23. 16:46
문제
https://www.acmicpc.net/problem/2438
2438번: 별 찍기 - 1
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
www.acmicpc.net
풀이
Java
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int i=1;i<=T;i++) {
System.out.println("*".repeat(i));
}
}
Kotlin
fun main() {
val sc: Scanner = Scanner(System.`in`)
val a = sc.nextInt()
for (i in 1..a) {
println("*".repeat(i))
}
}
What's new ?
- 코틀린에서의 반복문은 for(i 0..9)와 같이 표현한다. 여기서 i는 변수명이고 타입을 지정해주지 않아도 Int로설정된다.
0부터 9까지 반복하겠다는 의미이다. - 증가값을 특정 값으로 변경하여 진행하고 싶다면 step을 옵션으로 넣어주면 된다.
for (i in 1..9 step 2) {
print("$i ")
}
/**출력: 1 3 5 7 9 */
- 감소하는 for문을 만들고 싶다면 downTo를 사용하면 된다.
for (i in 9 downTo 1 step 2) {
print("$i ")
}
/**출력: 9 7 5 3 1 */
- 아래와 같이 다양하고 편하게 사용가능하다.
// char 반복
for (i in 'a' .. 'g') {
print("$i ")
}
/**출력: a b c d e f g */
// collection 반복
val items = listOf("Apple","Banana","Coconut")
for (item in items) {
print("$item ")
}
/**출력: Apple Banana Coconut *//
- in을 사용하여 아래와 같은 체크도 가능하다.
val items = listOf("Apple","Banana","Coconut")
when {
"kiwi" in items -> println("키위가 포함")
"Apple" !in items -> println("사과가 미포함")
"Apple" in items -> println("사과가 포함")
}
/**출력: 사과가 포함*/
- 문자열과 숫자를 합쳐야할 때 코틀린은 좀더 편하게 사용이 가능하다.
// Java
String name = "ray";
int number = 1234;
System.out.println("차종류는 "+ name + "이고 차 번호는 " + number + "이다.");
System.out.printf("차종류는 %s이고 차 번호는 %d이다.",name,number);
// Kotiln
val name = "ray"
val number = 1234
println("차종류는 ${name}이고 차 번호는 ${number}이다.")
// 변수명 뒤에 문자가 추가로 있을 때 괄호로 감싸주지 않으면 어디까지 변수명인지 모름
println("차번호: $number")
// 변수명 뒤에 문자가 추가로 없으면 괄호없이 사용가능