[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

More articles

See more posts
RSSPowered by inblog