๊ธฐ๋ก๋ฐฉ

Lv.2 : ์นดํŽซ ๋ณธ๋ฌธ

CodingTest/Java

Lv.2 : ์นดํŽซ

Soom_1n 2023. 9. 12. 00:05

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • ์ง์‚ฌ๊ฐํ˜•์˜ ํƒœ๋‘๋ฆฌ ๊ฒฉ์ž ์ˆ˜ brown๊ณผ ๊ทธ ์•ˆ์ชฝ ๊ฒฉ์ž์˜ ์ˆ˜ yellow๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
  • ์ง์‚ฌ๊ฐํ˜•์˜ ๊ฐ€๋กœ์™€ ์„ธ๋กœ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿ”ธ ๋ฌธ์ œ ํ’€์ด ๐Ÿ”ธ

  • ๊ฐ€๋กœ ๊ธธ์ด๋Š” ์„ธ๋กœ ๊ธธ์ด๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.
  • ์„ธ๋กœ ๊ธธ์ด๋ฅผ 1๋ถ€ํ„ฐ ๊ฐ€๋กœ์™€ ๊ฐ™์•„ ์งˆ ๋•Œ ๊นŒ์ง€ ํ‚ค์›Œ๊ฐ€๋ฉฐ brwon๊ณผ yellow๊ฐ’์ด ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
    • brown = 2x + 2y - 4
      • 2(x + y - 2) = brown
      • x + y = brown/2 + 2
    • yellow = (x-2) * (y-2)

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

class Solution {
    public int[] solution(int brown, int yellow) {
        int row = (brown / 2 + 2) - 1;
        int col = 1;
        
        while(row >= col) {
            if(2 * row + 2 * col - 4 == brown && (row-2) * (col-2) == yellow) break;
            row--;
            col++;
        }
        
        return new int[] {row, col};
    }
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • ์„ธ๋กœ ๊ธธ์ด์ธ col์„ ๊ฐ€๋กœ ๊ธธ์ด์ธ row์™€ ๊ฐ™์•„ ์งˆ ๋•Œ๊นŒ์ง€ ํ‚ค์›Œ๊ฐ€๋ฉฐ brown๊ณผ yellow๊ฐ€ ๋‚˜์˜ค๋Š” col, row ๊ฐ’์„ ์ฐพ๋Š”๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ๋ธŒ๋ฃจํŠธ ํฌ์Šค๋กœ ๊ฐ„๋‹จํžˆ ํ’€์ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ์ด์ฐจ๋ฐฉ์ •์‹์œผ๋กœ ๋” ๊ฐ„๋‹จํžˆ ํ’€ ์ˆ˜ ์žˆ๋‚˜ ์‹ถ์—ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ํ’€์ด์—์„œ ๊ทผ์˜ ๊ณต์‹์„ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ๋ฅผ ๋ดค๋‹ค. ์—ญ์‹œ ์ˆ˜ํ•™์„ ์ž˜ ํ•ด์•ผ ํ•œ๋‹ค.

728x90