2024. 6. 9. 15:26ㆍ코딩테스트
꾸준함이 살길이다,,, 응,,,
그래도 계속 블로그에 뭔가를 남길 수 있는게 오히려 더 좋은 것 같다,,
다시 또 보고 공부하고 또 풀고 공부하고,, 무한 반복이다~ 이거ㅏ야~
// 카운트 업
class Solution {
fun solution(start_num: Int, end_num: Int) = (start_num..end_num step 1).toList()
}
start_num 부터 1씩 올려서 end_num까지 리스트화 하는 문제였다!! step를 사용해서 해주었고! toList로 리스트화 시켜주었다.. ㅎㅎ
// flag에 따라 다른 값 반환하기
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
}
}
flag의 데이터타입이 boolean으로 만약에 true 일 경우 a + b, false 일 경우 a - b 의 값이 들어가는 문제였다!!
이는 별 문제 없이 편안하게 풀 수 있었다.. 단순히 if 절과 boolean 타입에 대해서 알고 있으면 문제 없다!
// 카운트 다운
class Solution {
fun solution(start: Int, end: Int) = (end..start step 1).toList().sortedDescending()
}
이건 위와는 반대로 아래로 떨어지는 것이다! 사실 이때 처음알았다,, step은 올리기만 하는거고 마이너스를 이용해서 아래로 다운시킬 수 없다는 것을,, ㅠ
그래서 우선 step으로 1씩 증가시키고 toList 한 다음에,, 정렬을 내림차순으로 하도록 하는 함수를 찾아서 적용시켜주었다.
그게 바로 sortDescending() / sortedDescending() 이었다.
또는 downTo를 사용해서 sortedDescending() 없이 할 수도 있었다.
class Solution {
fun solution(start: Int, end: Int): IntArray = (start downTo end).toList().toIntArray()
}
// 수 조작하기
class Solution {
fun solution(n: Int, control: String): Int {
var answer: Int = n
for (i in control.indices){
when(control[i]) {
'w' -> answer += 1
's' -> answer -= 1
'd' -> answer += 10
else -> answer -= 10
}
}
return answer
}
}
이러한 조건에 맞춰서 when절로 각자 맞게 작성해주었다!!!
해당 관련된 문자열에 무엇이 나왔는지에 따라서 연산을 해주는 거여서,,
조금은 까다로웠던 문제였다!
// 공배수
class Solution {
fun solution(number: Int, n: Int, m: Int): Int = if( number % n == 0 && number % m == 0) 1 else 0
}
n과 m의 공배수라서 각각 number에 나머지 연산자를 했을 때 0이 나오는 식이 동시에 이루어진다면 1을 아니라면 0을 리턴하는 문제였다!! 이건 그간 풀었던 문제와 크게 다르지 않아서 어렵지 않게 풀 수 있었다!!
// 가까운 1 찾기
class Solution {
fun solution(arr: IntArray, idx: Int): Int {
var answer: Int = 0
for (i in arr.indices){
if (i >= idx && arr[i] == 1){
answer = i
break
} else {
answer = -1
}
}
return answer
}
}
정수 배열 arr가 주어집니다. 이때 arr의 원소는 1 또는 0입니다. 정수 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 반환하는 solution 함수를 완성하고 만약 그러한 인덱스가 없다면 -1을 반환하는 문제였당!!
첨엔 진짜 무슨 말인지 몰라서 해맸지만,,,
주어진 idx보다 크면서 배열이 값이 1인 가장 작은 인덱스를 구하는거,,, 응,,
그래서 for문으로 돌려주고 그 안에 if 절을 작성해주었다... 검은 색으로 칠해져 있는 부분이 동시에 충족할 수 있도록
&& 사용하여 해주었고,, 가장 작은 인덱스를 구하는 것이므로 더 이상 구하지 않도록 break를 해주었다!!
만약에 더 해야한다~ 그럼 continue 가 필요하다 ㅎㅎ
또한 그러한 인덱스가 없으면 -1을 반환해야하는데,,, 이건 else를 사용해서 작성해주었다!!
끝! 그치만 이것 또한 다시 한 번 풀어봐야겠다 싶당 ㅠ 이따 풀어봐야징,, ㅠㅠ
'코딩테스트' 카테고리의 다른 글
TIL 20240619 코딩 테스트(11) (0) | 2024.06.19 |
---|---|
TIL 20240613 코딩 테스트(10) (0) | 2024.06.13 |
TIL 20240607 코딩 테스트(8) (0) | 2024.06.07 |
TIL 20240605 코딩테스트 (7) (1) | 2024.06.05 |
TIL 20240601 코딩테스트 (6) (0) | 2024.06.01 |