inblog logo
|
๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ปDriedPollack's Blog
    โ˜•Java๐Ÿ’กCoding Test

    [programmers] 2์˜ ์˜์—ญ - Java

    ์ฃผ์–ด์ง„ ์ •์ˆ˜ ๋ฐฐ์—ด์—์„œ 2๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋œ ๊ฐ€์žฅ ์ž‘์€ ์—ฐ์†๋œ ๋ถ€๋ถ„ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ž๋ฐ” ์†”๋ฃจ์…˜ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ 2๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ์ฒซ ์ธ๋ฑ์Šค์™€ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ๊ณ , ํ•ด๋‹น ๋ถ€๋ถ„ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. 2๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ [-1]์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    Jan 11, 2024
    [programmers] 2์˜ ์˜์—ญ - Java

    ๋ฌธ์ œ ์„ค๋ช…

    ์ •์ˆ˜ ๋ฐฐ์—ด arr๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋ฐฐ์—ด ์•ˆ์˜ 2๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋œ ๊ฐ€์žฅ ์ž‘์€ ์—ฐ์†๋œ ๋ถ€๋ถ„ ๋ฐฐ์—ด์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.
    ๋‹จ, arr์— 2๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ [-1]์„ return ํ•ฉ๋‹ˆ๋‹ค.

    ์ œํ•œ์‚ฌํ•ญ

    • 1 โ‰ค arr์˜ ๊ธธ์ด โ‰ค 100,000
      • 1 โ‰ค arr์˜ ์›์†Œ โ‰ค 10

    ์ž…์ถœ๋ ฅ ์˜ˆ

    arr
    result
    [1, 2, 1, 4, 5, 2, 9]
    [2, 1, 4, 5, 2]
    [1, 2, 1]
    [2]
    [1, 1, 1]
    [-1]
    [1, 2, 1, 2, 1, 10, 2, 1]
    [2, 1, 2, 1, 10, 2]

    ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

    ์ž…์ถœ๋ ฅ ์˜ˆ #1
    • 2๊ฐ€ ์žˆ๋Š” ์ธ๋ฑ์Šค๋Š” 1๋ฒˆ, 5๋ฒˆ ์ธ๋ฑ์Šค๋ฟ์ด๋ฏ€๋กœ 1๋ฒˆ๋ถ€ํ„ฐ 5๋ฒˆ ์ธ๋ฑ์Šค๊นŒ์ง€์˜ ๋ถ€๋ถ„ ๋ฐฐ์—ด์ธ [2, 1, 4, 5, 2]๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.
    ์ž…์ถœ๋ ฅ ์˜ˆ #2
    • 2๊ฐ€ ํ•œ ๊ฐœ๋ฟ์ด๋ฏ€๋กœ [2]๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.
    ์ž…์ถœ๋ ฅ ์˜ˆ #3
    • 2๊ฐ€ ๋ฐฐ์—ด์— ์—†์œผ๋ฏ€๋กœ [-1]์„ return ํ•ฉ๋‹ˆ๋‹ค.
    ์ž…์ถœ๋ ฅ ์˜ˆ #4
    • 2๊ฐ€ ์žˆ๋Š” ์ธ๋ฑ์Šค๋Š” 1๋ฒˆ, 3๋ฒˆ, 6๋ฒˆ ์ธ๋ฑ์Šค์ด๋ฏ€๋กœ 1๋ฒˆ๋ถ€ํ„ฐ 6๋ฒˆ ์ธ๋ฑ์Šค๊นŒ์ง€์˜ ๋ถ€๋ถ„ ๋ฐฐ์—ด์ธ [2, 1, 2, 1, 10, 2]๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

    โ€ป 2023๋…„ 04์›” 27์ผ ์ž…์ถœ๋ ฅ ์˜ˆ, ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช… ๋ฐ ์˜ˆ์‹œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์ˆ˜์ • ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    solution.java

    import java.util.Arrays; class Solution { public int[] solution(int[] arr) { // ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ณด๋‹ค ํฐ ๊ฐ’์„ ๊ฐ€์ง„ ๋ณ€์ˆ˜๋ฅผ ์„ค์ • int firstIndex = 100000, lastIndex = 0; // ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์ˆซ์ž 2๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ์ฒซ ์ธ๋ฑ์Šค์™€ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์Œ for (int i = 0; i < arr.length; i++) { if (arr[i] == 2) { firstIndex = Math.min(firstIndex, i); lastIndex = Math.max(lastIndex, i); } } // ๋งŒ์•ฝ ์ˆซ์ž 2๊ฐ€ ๋ฐฐ์—ด ์•ˆ์— ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๋ถ€๋ถ„ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ if (firstIndex <= lastIndex) { return Arrays.copyOfRange(arr, firstIndex, lastIndex + 1); } else { // ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด {-1}์„ ๋ฐ˜ํ™˜ return new int[]{-1}; } } }
     

    ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ

    • Math.min() ๋ฉ”์†Œ๋“œ์™€ Math.max() ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ์ˆซ์ž 2๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
    • Arrays.copyOfRange() ๋ฉ”์†Œ๋“œ๋Š” ๋Œ€์ƒ ๋ฐฐ์—ด์˜ ์ง€์ •๋œ ๋ฒ”์œ„๋ฅผ ์ƒˆ ๋ฐฐ์—ด๋กœ ๋ณต์‚ฌํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์†Œ์Šค ๋ฐฐ์—ด, ๋‘ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ณต์‚ฌํ•  ๋ฒ”์œ„์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค, ์„ธ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ณต์‚ฌํ•  ๋ฒ”์œ„์˜ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์ด๋‹ค.
     

    ๊ฒฐ๋ก !

    ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค๊ฐ€ ๋ฐฐ์—ด ๋‚ด์—์„œ ํŠน์ • ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•˜๋Š”๋ฐ ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ๊ณ , ์ด๋ฅผ Math.min() ๋ฉ”์†Œ๋“œ์™€ Math.max() ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
    ๋˜ํ•œ ์—ฐ์†๋œ ๋ถ€๋ถ„ ๋ฐฐ์—ด์„ ๊ตฌํ•˜๋Š”๋ฐ๋„ ์–ด๋ ค์›€์„ ๊ฒช์—ˆ๋Š”๋ฐ Arrays.copyOfRange() ๋ฉ”์„œ๋“œ์˜ ์‚ฌ์šฉ๋ฒ• ๋˜ํ•œ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
     
    Share article

    ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ปDriedPollack's Blog

    RSSยทPowered by Inblog