프로그래머스의 프로그래머스 스쿨에서 코딩 기초 트레이닝에 있는 124개의 문제 풀이를 다루고자 합니다.
나의 풀이와 다른 사람의 풀이에 대해 다루며, 개념을 새로 다지는 과정을 다루려고 합니다.
끝에는 백준 허브를 통해 diff를 남겨놓을 예정입니다.
0. 양식
문제설명
나의 풀이
최종 제출
의문점과 해결 과정
다른 사람의 풀이 3가지
자연수 n이 입력으로 주어졌을 때 만약 n이 짝수이면 "n is even"을, 홀수이면 "n is odd"를 출력하는 코드를 작성해 보세요.
제한사항
1 ≤ n ≤ 1,000
입출력 예
입력 #1
100
출력 #1
100 is even
입력 #2
1
출력 #2
1 is odd
fun main(args: Array<String>) {
val a = readLine().!!toInt()
if (n / 2 == 0) {
println("n is even")
} else {
println("n is odd ")
}
}
fun main(args: Array<String>) {
val n = readLine()!!.toInt()
if (n % 2 == 0) {
print("$n is even")
} else {
print("$n is odd")
}
}
fun main(args: Array<String>) {
val a = readLine()!!.toInt()
println("$a is ${if (a % 2 == 0) "even" else "odd"}")
}
fun main(args: Array<String>) {
val a = readLine()!!.toInt()
if (a%2 == 0) println("${a} is even")
else println("${a} is odd")
}
fun main(args: Array<String>) {
val n = readln().toInt()
println("$n is ${if (n % 2 == 0) "even" else "odd"}")
}
두 정수 a, b와 boolean 변수 flag가 매개변수로 주어질 때, flag가 true면 a + b를 false면 a - b를 return 하는 solution 함수를 작성해 주세요.
제한사항
-1,000 ≤ a, b ≤ 1,000
입출력 예
a b flag result
-4 7 true 3
-4 7 false -11
class Solution {
fun solution(a: Int, b: Int, flag: Boolean): Int {
var answer: Int = 0
if (flag == true) {
return a + b
} else {
return a - b
}
return answer
}
}
class Solution {
fun solution(a: Int, b: Int, flag: Boolean): Int = if (flag) a + b else a - b
}
class Solution {
fun solution(a: Int, b: Int, flag: Boolean): Int {
var answer: Int = 0
if (flag) {
answer = a + b
} else {
answer = a - b
}
return answer
}
}
class Solution {
fun solution(a: Int, b: Int, flag: Boolean): Int {
return if (flag) a + b else a - b
}
}
실수 flo가 매개 변수로 주어질 때, flo의 정수 부분을 return하도록 solution 함수를 완성해주세요.
제한사항
0 ≤ flo ≤ 100
입출력 예 :
flo result
1.42 1
69.32 69
class Solution {
fun solution(flo: Double): Int {
var answer: Int = 0
answer = flo.toInt() // 값을 담을 곳이 필요하다 그래서 answer
return answer
}
}
class Solution {
fun solution(flo: Double): Int {
return flo.toInt()
}
}
class Solution {
fun solution(flo: Double) = flo.toInt()
}
class Solution {
fun solution(flo: Double): Int {
var answer: Int = flo.toInt()
return answer
}
}
정수 number와 n, m이 주어집니다. number가 n의 배수이면서 m의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.
제한사항
10 ≤ number ≤ 100
2 ≤ n, m < 10
입출력 예
number n m result
60 2 3 1
55 10 5 0
class Solution {
fun solution(number: Int, n: Int, m: Int): Int {
var answer: Int = 0
if (number % (n * m) == 0) {
return 1
} else {
return 0
}
return answer
}
}
// return if (number % (n * m) == 0) 1 else 0
class Solution {
fun solution(number: Int, n: Int, m: Int): Int {
var result: Int = 0
return if (number%n == 0 && number%m == 0) 1 else 0
}
}
return answer를 넣을까 뺄까하다가 넣는게 맞는거같아서 넣고, 매개변수 number를 실수로 num으로 쓰고 제출해서 틀렸었다. 코드 실행은 되는데 나중에 알고보니 제출할때는 실패했었다.
일단 return을 해야하는 이유는 위의 if-else에서 return 되지 않는 경우가 있을 수 있으니 명시적으로 함수 본문의 마지막에 return을 해줘야한다.
결국에는 다른 사람의 풀이를 이용했다. 그나마 생각했던 로직과 비슷한걸로 선택했다.
class Solution {
fun solution(number: Int, n: Int, m: Int): Int = if (number % n == 0 && number % m == 0) 1 else 0
}
class Solution {
fun solution(number: Int, n: Int, m: Int): Int {
var answer: Int = 0
if (number % n == 0 && number % m == 0) {
answer++
}
return answer
}
}
class Solution {
fun solution(number: Int, n: Int, m: Int): Int {
val answer = if (number % n == 0 && number % m == 0) 1 else 0
return answer
}
}
알파벳으로 이루어진 문자열 myString이 주어집니다. 모든 알파벳을 소문자로 변환하여 return 하는 solution 함수를 완성해 주세요.
제한사항
1 ≤ myString의 길이 ≤ 100,000
myString은 알파벳으로 이루어진 문자열입니다.
입출력 예
myString result
"aBcDeFg" "abcdefg"
"aaa" "aaa"
class Solution {
fun solution(myString: String): String {
var result: String = ""
result = myString.toLowerCase()
return result
}
}
fun solution(myString: String) = myString.toLowerCase()
fun solution(myString: String): String {
return myString.toLowerCase()
}
fun solution(myString: String): String {
var answer: String = myString.toLowerCase()
return answer
}