2024. 3. 28. 11:40, ๐กAlgorithm
๋ฐ์ํ
๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/12918
์ ๊ทผ
- 1) ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ํ์ธํ์ฌ 4 ๋๋ 6์ธ์ง ํ์ธํ๋ค.
- 2) ๋ฌธ์์ด์ ๋ชจ๋ ๋ฌธ์๊ฐ ์ซ์๋ก๋ง ๊ตฌ์ฑ๋์ด ์๋์ง ํ์ธํ๋ค.
class Solution {
fun solution(s: String): Boolean {
if(s.length == 4 || s.length == 6){
if(s.isDigit() == true) return true
} else return false
}
}
- ์์ ๊ฐ์ด ์ค๊ณํด๋ณด์์ผ๋ ์ค๋ฅ๊ฐ ๋ด๋ค.
- ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 4 ๋๋ 6์ด ์๋ ๊ฒฝ์ฐ์๋ false๋ฅผ ๋ฐํํด์ผ ํ์ง๋ง, ํ์ฌ ์ฝ๋์์๋ ํด๋น false ์ฒ๋ฆฌ๊ฐ ์๋ค.
class Solution {
fun solution(s: String): Boolean {
if(s.length == 4 || s.length == 6 && s.isDigit() == true) return true
else false
}
}
- ์ด๋ฒ์ ์์ ๊ฐ์ด ์ค๊ณํด๋ณด์์ผ๋, ์ฌ์ ํ ์ค๋ฅ๊ฐ ์๋ค.
- 1. ์ฐ์ฐ์ ์ฐ์ ์์ ๋ฌธ์ ๊ฐ ์๋ค.
ํ์ฌ ์ฝ๋์์๋ && ์ฐ์ฐ์๊ฐ || ์ฐ์ฐ์๋ณด๋ค ์ฐ์ ์๋๊ธฐ ๋๋ฌธ์ ์กฐ๊ฑด์ด ์๋ชป ํ๊ฐ๋๋ค.
์๋ฅผ ๋ค์ด, s.length == 4 || s.length == 6 && s.isDigit() == true์์ && ์ฐ์ฐ์๊ฐ || ์ฐ์ฐ์๋ณด๋ค ๋จผ์ ๊ณ์ฐ๋๋ฏ๋ก, s.length == 4 || (s.length == 6 && s.isDigit() == true)์ ๊ฐ์ด ํ๊ฐ๊ฐ ๋์ด๋ฒ๋ฆฐ๋ค. - 2. s.isDigit() == true ๋ก๋ ๊ณ์ฐ์ด ๋ถ๊ฐํ๋ค.
s.isDigit()์ ๋ฌธ์์ด ์ ์ฒด๊ฐ ์ซ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋์ง๋ฅผ ํ์ธํ๋ ๊ฒ์ด ์๋๋ผ, ๋ฌธ์์ด์ด ์ซ์ ํ๋๋ฅผ ํฌํจํ๋์ง๋ฅผ ํ์ธํ๋ค. ๋ฐ๋ผ์ ์ด ๋ฐฉ๋ฒ์ ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ ์ ์ ํ์ง ์๋ค. - 3. ๋ฐ๋ผ์ all ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ข๋ค.
all ํจ์๋ ์ปฌ๋ ์ ์ ๋ชจ๋ ์์๊ฐ ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ง์กฑํ๋์ง๋ฅผ ํ์ธํ๋ค.
์ด ๊ฒฝ์ฐ, s.all { it.isDigit() }๋ ๋ฌธ์์ด s์ ๋ชจ๋ ๋ฌธ์๊ฐ ์ซ์์ธ์ง๋ฅผ ํ์ธํ ์ ์๋ค.
์ฑ๊ณต ์ฝ๋
class Solution {
fun solution(s: String): Boolean {
if((s.length == 4 || s.length == 6) && s.all{it.isDigit()} == true) { return true }
else return false
}
}
// if๋ฌธ ์์ ๊ณ ๋ ์งง๊ฒ
class Solution {
fun solution(s: String): Boolean = (s.length == 4 || s.length == 6) && (s.all{it.isDigit()} == true)
}
์ค๋ช
- s์ ๊ธธ์ด๊ฐ 4๊ฑฐ๋ 6์ด๋ฉด์, ๋ชจ๋ ์์๊ฐ ์ซ์์ธ์ง ํ์ธ ํ๋ค.(isDigit())
- ์ผ์ด์ค์ ๋ฐ๋ผ if๋ฌธ์ผ๋ก ๋๋ ์ true์ false๋ฅผ ๋ฐํํ๋ค.
๐กisDigit()
val char1 = '5'
val char2 = 'a'
println(char1.isDigit()) // true
println(char2.isDigit()) // false
- ๋ฌธ์๊ฐ ์ซ์์ธ์ง๋ฅผ ํ๋ณ
- ๋ฌธ์์ด์ ๊ฒฝ์ฐ ์ซ์๋ฅผ ํ๋๋ผ๋ ๊ฐ์ง๊ณ ์์ผ๋ฉด true์์ ์ฃผ์
- ์ฌ์ฉ๋ฒ: Char.isdigit()
๐กisLetter()
val char1 = 'A'
val char2 = '5'
println(char1.isLetter()) // true
println(char2.isLetter()) // false
- ๋ฌธ์๊ฐ ์ํ๋ฒณ ๋ฌธ์์ธ์ง๋ฅผ ํ๋ณ
- ๋ฌธ์์ด์ ๊ฒฝ์ฐ ์ซ์๋ฅผ ํ๋๋ผ๋ ๊ฐ์ง๊ณ ์์ผ๋ฉด true์์ ์ฃผ์
- ์ฌ์ฉ๋ฒ: Char.isLetter()
๐กall()
val numbers = listOf(1, 2, 3, 4, 5)
val allEven = numbers.all { it % 2 == 0 }
println(allEven) // false
val letters = listOf('a', 'b', 'c', 'd', 'e')
val allLowercase = letters.all { it.isLowerCase() }
println(allLowercase) // true
- ์ปฌ๋ ์ ์ ๋ชจ๋ ์์๊ฐ ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ง์กฑํ๋์ง๋ฅผ ํ์ธ
- ์ฌ์ฉ๋ฒ: Collection.all { predicate(๊ฐ ์์๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ์กฐ๊ฑด์ ๊ฒ์ฌํ๋ ํจ์, true or false) }
๋ค๋ฅธ ๋ฐฉ๋ฒ
class Solution {
fun solution(s: String) = (s.length == 4 || s.length == 6) && s.toIntOrNull() != null
}
- ๋งค์ฐ ์ ๋ฐํ ํ์ด๋ค. isDigit()๊ฐ ์๋ .toIntOrNull()์ ์ผ๋ค.
- s.toIntOrNull()์ด null์ธ์ง ์๋์ง, ์ฆ, ๋ฌธ์์ด s๋ฅผ ์ ์๋ก ๋ณํํ ์ ์๋์ง ํ๋จํ๊ณ true์ false๋ฅผ ์ถ๋ ฅํ๋ค.
๐ก.toIntOrNull()
"123".toIntOrNull() -> ์ ์ 123์ ๋ฐํ
"abc".toIntOrNull() -> null์ ๋ฐํ
"ab3c".toIntOrNull() -> null์ ๋ฐํ
- ์ฃผ์ด์ง ๋ฌธ์์ด์ ์ ์๋ก ๋ณํํ ์ ์๋์ง๋ฅผ ํ์ธ
- ๋ณํํ ์ ์๋ค๋ฉด ๊ทธ ์ ์ ๊ฐ์ ๋ฐํํ๊ณ , ๋ณํํ ์ ์๋ค๋ฉด null์ ๋ฐํ
๋ฐ์ํ
๐ฌ C O M M E N T