[ํ ์ค NEXT] 2022๋ ์ฝ๋ฉํ ์คํธ ๊ธฐ์ถ๋ฌธ์ ๋ฅผ ๊ณต๊ฐํด์
์ฝ 8,000๋ช ์ ์ง์์๊ฐ ์์๋ 2022๋ ํ ์ค NEXT ๊ฐ๋ฐ์ ์ฑ๋ฆฐ์ง. ๋ง์ ์ธ์์ด ์ฐธ์ฌํ ๋งํผ, ์ง์์์ ์ญ๋์ ๋ ๋ฉด๋ฐํ ๊ฒ์ฆํ ์ ์๋๋ก ํ ์ค์ ๊ฐ ์ฑํฐ (Frontend, Server ๋ฑ์ ๊ธฐ์ ์กฐ์ง) ์์๋ ๋ฌธ์
toss.im
ํ ์ค NEXT 2023๋ ์ฝ๋ฉํ ์คํธ๋ฅผ ์๋๊ณ ํ ์ค ์ฑ์ฉ ํํ์ด์ง์ ๊ณต๊ฐ๋์ด ์๋ Server ์ง๊ตฐ์ ๋ฌธ์ ๋ฅผ 1๊ฐ ํ์ด๋ดค๋ค! ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ๋ง์ถ ๋ฌธ์ ๋ผ๊ณ ํ๋ค. ์ด๋ค ์์ผ๋ก ๋์ค๋์ง ๊ถ๊ธํด์ ์ฐ์ต๊ฒธ ํ์ด๋ดค๋ค.
๋ฌธ์ ๋ช : ๋ฉ์์ด ์ซ์
์ซ์๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ์์ต๋๋ค. (0 <= s.length < 1,000) ์๋์ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ ์ซ์๋ฅผ '๋ฉ์์ด ์ซ์'๋ผ๊ณ ํฉ๋๋ค.
[์กฐ๊ฑด] 1. ๊ธธ์ด๊ฐ 3์ธ s์ substring์ 10์ง์๋ก ์ฝ์ ์ซ์์ด๋ค. 2. ๊ฐ ์๋ฆฌ์ ์ซ์๊ฐ ๋ชจ๋ ๊ฐ๋ค.
๊ตฌํ์ฌํญ
๋ฌธ์์ดs๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ฉ์์ด ์ซ์๋ฅผ ๋ฆฌํดํ๋ ํจ์๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์.
- ๋ง์ฝ, ๋ฉ์์ด ์ซ์๊ฐ ์ฌ๋ฌ ๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ฆฌํดํฉ๋๋ค.
- ๋ง์ฝ, ๊ฐ์ฅ ํฐ ๋ฉ์์ด ์ซ์๊ฐ 000์ด๋ผ๋ฉด 0์ ๋ฆฌํดํฉ๋๋ค.
- ๋ง์ฝ, ๋ฉ์์ด ์ซ์๊ฐ ์กด์ฌํ์ง ์๋ค๋ฉด -1์ ๋ฆฌํดํฉ๋๋ค.
์์ ๋ฌธ์
์์ 1
- ์ ๋ ฅ: s = “12223”
- ์ถ๋ ฅ: 222
์์ 2
- ์ ๋ ฅ: s = “111999333”
- ์ถ๋ ฅ: 999
- ์ค๋ช : 111, 333, 999 3๊ฐ์ง๊ฐ ์กด์ฌํ๊ณ 999๊ฐ ์ ์ผ ํฌ๋ฏ๋ก 999๋ฅผ ๋ฆฌํดํฉ๋๋ค.
์์ 3
- ์ ๋ ฅ: s = “123”
- ์ถ๋ ฅ: -1
๋ด ์ฝ๋
int ans = -1;
for(int i = 0; i < s.length() - 2; i++) {
int num = Integer.parseInt(s.substring(i, i + 3));
if(num % 111 == 0) ans = Math.max(num, ans);
}
System.out.println(ans);
๋ชจ๋ฒ ๋ต์
class Solution {
fun solution(s: String): Int {
var biggest = -1
for (i in 0 until s.length-2) {
if (s[i] == s[i+1] && s[i+1] == s[i+2]) {
biggest = Math.max(biggest, s.substring(i, i+3).toInt())
}
}
return biggest
}
}
subString์ ํ๊ณ ๋ฉ์์ด ์ซ์์ธ์ง ํ๋ณํด ๊ฐฑ์ ํ๋ ๊ฒ์ด ์๋๋ผ, ๋ฉ์์ด ์ซ์์ธ์ง ํ๋ณํ๊ณ subString์ ํด ๊ฐฑ์ ํ์ด์ผ ํ๋ค.
๊ถ๊ธํด์ ์ฐพ์๋ณด๋ subString์ ์ํ์๊ฐ์ O(n)์ด๋ค.