1. 프로그래머스 두 수의 차 코틀린
class Solution {
fun solution(num1: Int, num2: Int): Int {
var answer: Int = 0
return answer
}
}
처음으로 써보는 기능이지만 티스토리 블로그에도 코드블럭이라는게 있어서 사용해보았다.
우선 두 수의 차 초기 코드이다.
n1이 2이고 n2가 3일때 -1을 return , n1이 100, n2가 2일때 98을 return 한다.
간단한 사칙 연산이다.
함수(fun)에 num1,2 모두 Int(정수)를 초기 코드에서 값이 변하는 변수 var이 이미 선언되어 있는데, 여기서 Int = 0을 Int = num1-num2 로 바꿔서 리턴하면 된다.
class Solution {
fun solution(num1: Int, num2: Int): Int {
var answer: Int = num1-num2
return answer
}
}
근데 이러면 너무 길기도 하고 간단하게
class Solution {
fun solution(num1: Int, num2: Int) = num1-num2
}
이렇게도 가능하다.
2. 프로그래머스 두 수의 곱 코틀린
class Solution {
fun solution(num1: Int, num2: Int): Int {
var answer: Int = 0
return answer
}
}
초기 코드이다.
num1,2는 0이상 100이하의 정수이다.
1번이랑 같이 간단하게 '-'를 '*'로 바꿔주면 된다.
class Solution {
fun solution(num1: Int, num2: Int) = num1*num2
}
3. 프로그래머스 몫 구하기
class Solution {
fun solution(num1: Int, num2: Int): Int {
var answer: Int = 0
return answer
}
}
초기코드이다. 이거도 위와 같이 나누기 부호인 '/'를 사용해주면 된다.
class Solution {
fun solution(num1: Int, num2: Int) = num1/num2
}
4. 프로그래머스 나이 출력
class Solution {
fun solution(age: Int): Int {
var answer: Int = 0
return answer
}
}
2022년 기준 40살은 1983년생이다.
2022년 기준 23살은 2000년생이다.
제한사항을 보고 제일 쉽게 예를 들어보자. 2022년에 태어난 사람은 1살이 되어야 하는데 2022(기준) - x = 2022 -> x = 0
-> 2022에서 그냥 나이만 빼면 우리가 태어난 해를 0살로 해야한다. 근데 태어난 연도를 1살로 친다고 했으니 +1을 해주도록 하자.
class Solution {
fun solution(age: Int) = 2022 - age + 1
}
이거도 사칙연산으로 보면 되니 초기코드보다 훨씬 간단하게 끝낼 수 있다.
5. 프로그래머스 숫자 비교하기
이제 마냥 사칙연산에서 벗어나 조건문을 활용해야 한다.
class Solution {
fun solution(num1: Int, num2: Int): Int {
var answer: Int = 0
return answer
}
}
초기코드이다.
두 수가 같으면 1, 아니면 -1이라는 값이 리턴되어야한다.
'비교하기' 이므로 비교연산자를 활용하는 if라는 함수를 활용할 수 있다.
두 항의 값이 같으면 true, 아니라면 false라는 뜻을 가진 연산자 ' == '을 활용해보자.
우선 var 선언 밑에 if 함수를 넣고 두 수가 같은값일 때의 답인 1, 그렇지 않을 때의 답인 -1을 적어주자.
if를 썼으니 같은 값일때 나타낼 값을 쓰고 그렇지 않을 때를 나타내기 위해 따라오는 else를 적은 후 그렇지 않을 때 나타낼 값을 적어준다.
class Solution {
fun solution(num1: Int, num2: Int): Int {
var answer: Int = 0
if(num1 == num2){
answer = 1
}else{
answer = -1
}
return answer
}
}
마지막에 return 하는 것은 answer 값인 1또는 -1 그래서 return answer까지 다 적어주자.
6. 프로그래머스 두 수의 합
class Solution {
fun solution(num1: Int, num2: Int): Int {
var answer: Int = -1
return answer
}
}
이건... 위쪽에서 했던 사칙연산이다.
합이니 ' + '나 붙여주자.
class Solution {
fun solution(num1: Int, num2: Int) = num1+num2
}
7. 프로그래머스 두 수의 나눗셈
class Solution {
fun solution(num1: Int, num2: Int): Int {
var answer: Int = 0
return answer
}
}
3나누기 2를 하면 1.5라는 값이 나온다. 다만 이러면 위에 코드에선 Int 즉 정수만 나오게 되어있는데 이러면 정상적으로 나오질 않는다. 따라서 소숫점을 나타낼 수 있는 Double을 사용해야한다. 우선 3과 2 이들을 소숫점으로 나타내기 위해 3.toDouble(), 2.toDouble() 이렇게 되어야한다. 즉 식에 넣어보면 num1.toDouble() / num2.toDouble이 된다. 다만 7나누기 3은 2.33333333... 이렇게 쭉 나가기 때문에 에러가 날 것이다. 그리고 문제에서도 1000을 곱하여 정수부분을 리턴하라고 한다.
자 이제 정수 부분 리턴을 위해 마지막 답에 .toInt() 를 사용하여 인트로 바꿔주자. 솔직히 소수점 몇번째 자리까지만 나타내라 같은 문제를 본거 같은데 기억이 나질 않는다...우선 일단 toInt()를 통해 한번 바꿔보자.
class Solution {
fun solution(num1: Int, num2: Int): Int {
var answer : Double = num1.toDouble() / num2.toDouble() * 1000
return answer.toInt()
}
}
우선 리턴하는 정답에 정수로 바꿔주는 toInt()를 사용하니 답이 나왔다.
이제 좀 차근차근 쉬운 문제더라도 어떤것을 사용하고 어떻게 이용하는지 계속 생각하면서 풀어봐야겠다.
'알고리즘' 카테고리의 다른 글
프로그래머스 - 짝수의 합 (0) | 2023.11.29 |
---|---|
알고리즘 문제풀이 - 각도기 (0) | 2023.11.28 |
프로그래머스 - 이상한 문자 만들기 (0) | 2023.11.22 |
프로그래머스 3진법 뒤집기 (0) | 2023.11.21 |
프로그래머스-최대공약수와 최소공배수 (0) | 2023.11.20 |