안녕하세요. 이번에는 프로그래머스 직사각형 별 찍기 문제를 풀어보려고 합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12969
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
Problem
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해 보세요.
[제한 사항]
○ n과 m은 각각 1000 이하인 자연수입니다.
![](https://blog.kakaocdn.net/dn/cjdly2/btsBfLkZHsc/UKAc6bYzncMbdgL1EHJKjK/img.png)
Solution
fun main(args: Array<String>) {
val (a, b) = readLine()!!.split(' ').map(String::toInt)
var answer: String = ""
for(i in 0 until b) {
for(j in 0 until a) {
answer += "*"
}
answer += "\n"
}
println(answer)
}
이번 문제는 for문을 이용해서 쉽게 문제를 풀었습니다.
1. 다른 사람 코드
fun main(args: Array<String>) {
val (a, b) = readLine()!!.split(' ').map(String::toInt)
repeat(b) {
repeat(a) { print("*") }
println("")
}
}
조금 더 학습을 하기 위해서 다른 사람들의 코드를 확인해 보았습니다. 다른 사람은 repeat() 함수를 사용해서 문제를 접근하였습니다. for문을 이용하나 repeat을 이용하나 큰 차이는 없어서 자신의 스타일로 코드를 작성해도 좋을 것 같습니다. 그래도 kotlin에 repeat 기능이 있다는 것을 인지하고 있으면 언제든지 유용하게 사용할 수 있을 것 같습니다.
Performance
1. 내가 작성한 코드 | 2. 다른 사람 코드 |
![]() |
![]() |
반응형
'프로그래머스 Algorithm' 카테고리의 다른 글
[프로그래머스] 최대공약수와 최소공배수 Kotlin (0) | 2023.12.02 |
---|---|
[프로그래머스] JadenCase 문자열 만들기 Kotlin (0) | 2023.12.01 |
[프로그래머스] 부족한 금액 계산하기 Kotlin (0) | 2023.11.29 |
[프로그래머스] 최댓값과 최솟값 Kotlin (0) | 2023.11.28 |
[프로그래머스] 행렬의 덧셈 Kotlin (0) | 2023.11.27 |