Algorithm

๊ธฐ์ถœ ๋ฌธ์ œ ํ’€์ด - ํ† ์Šค NEXT 2022๋…„ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ Server ๊ณต๊ฐœ ๋ฌธ์ œ

giraffe_ 2023. 7. 7. 02:15

https://toss.im/career/article/next-developer-2023-sample-questions?utm_source=toss_careerpage&utm_medium=post&utm_campaign=next23&utm_content=questions 

 

[ํ† ์Šค 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)์ด๋‹ค.