관리 메뉴

Binary Journey

[ν…Œμ½”ν…Œμ½”1.5 2-02] 같은 μˆ«μžλŠ” μ‹«μ–΄ λ³Έλ¬Έ

Algorithm/ν…Œμ½”ν…Œμ½”1.5(2025)

[ν…Œμ½”ν…Œμ½”1.5 2-02] 같은 μˆ«μžλŠ” μ‹«μ–΄

binaryJournalist 2025. 2. 21. 13:28
λ°˜μ‘ν˜•
πŸ’‘ν…Œμ½”ν…Œμ½” μ‹œμ¦Œ 1.5 2회 λͺ¨μž„ off-site 문제 ν’€μ΄μž…λ‹ˆλ‹€. (2025.01.19)

 

문제

좜처: ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - 같은 μˆ«μžλŠ” μ‹«μ–΄

 

λ‚΄μš©

 

λ°°μ—΄ arrκ°€ μ£Όμ–΄μ§‘λ‹ˆλ‹€. λ°°μ—΄ arr의 각 μ›μ†ŒλŠ” 숫자 0λΆ€ν„° 9κΉŒμ§€λ‘œ 이루어져 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ, λ°°μ—΄ arrμ—μ„œ μ—°μ†μ μœΌλ‘œ λ‚˜νƒ€λ‚˜λŠ” μˆ«μžλŠ” ν•˜λ‚˜λ§Œ 남기고 μ „λΆ€ μ œκ±°ν•˜λ €κ³  ν•©λ‹ˆλ‹€. 단, 제거된 ν›„ 남은 μˆ˜λ“€μ„ λ°˜ν™˜ν•  λ•ŒλŠ” λ°°μ—΄ arr의 μ›μ†Œλ“€μ˜ μˆœμ„œλ₯Ό μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€λ©΄,

  • arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return ν•©λ‹ˆλ‹€.
  • arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return ν•©λ‹ˆλ‹€.

λ°°μ—΄ arrμ—μ„œ μ—°μ†μ μœΌλ‘œ λ‚˜νƒ€λ‚˜λŠ” μˆ«μžλŠ” μ œκ±°ν•˜κ³  남은 μˆ˜λ“€μ„ return ν•˜λŠ” solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄ μ£Όμ„Έμš”.

 

 

κΈ°λ‘ν•˜κΈ°

πŸ’‘ μ–΄λ””κΉŒμ§€ μƒκ°ν•΄λ΄€λŠ”μ§€ λ‹¨κ³„μ μœΌλ‘œ κΈ°λ‘ν•΄λ΄…λ‹ˆλ‹€.

μ–΄λ–€ μ•Œκ³ λ¦¬μ¦˜μ„ μ μš©ν•˜λ € ν–ˆλ‚˜μš”?

μŠ€νƒμ„ μ‚¬μš©ν•©λ‹ˆλ‹€.

문제 풀이 κ³Όμ •μ—μ„œ ν•΄λ‹Ή μ•Œκ³ λ¦¬μ¦˜μ„ μ–΄λ–»κ²Œ μ½”λ“œλ‘œ κ΅¬ν˜„ν•˜λ € ν–ˆλ‚˜μš”?

μŠ€νƒμ„ μ‚¬μš©ν•˜μ—¬ top κ³Ό 같은 값은 μ§€λ‚˜κ°€κ³  λ‹€λ₯Έ 값은 μŠ€νƒμ— λ‹΄μŠ΅λ‹ˆλ‹€.

 

 

 

풀이

풀이 μ‹œκ°„

μ‹œμž‘ μ‹œκ° μ’…λ£Œ μ‹œκ° 총 μ†Œμš” μ‹œκ°„
18:18 18:24 6λΆ„

 

 

문제 뢄석

 

μ œμ•½ 사항 νŒŒμ•… & ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μž‘μ„±

  • λ°°μ—΄ arr의 크기 : 1,000,000 μ΄ν•˜μ˜ μžμ—°μˆ˜
  • λ°°μ—΄ arr의 μ›μ†Œμ˜ 크기 : 0보닀 ν¬κ±°λ‚˜ κ°™κ³  9보닀 μž‘κ±°λ‚˜ 같은 μ •μˆ˜

 

μž…λ ₯κ°’ 뢄석

πŸ’‘ μž…λ ₯값을 λΆ„μ„ν•˜λ©΄ λ¬Έμ œμ—μ„œ μš”κ΅¬ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ˜ μ‹œκ°„ λ³΅μž‘λ„λ₯Ό κ°„μ ‘μ μœΌλ‘œ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

arr answer
[1,1,3,3,0,1,1] [1,3,0,1]
[4,4,4,3,3] [4,3]

 

μ˜μ‚¬ μ½”λ“œ μž‘μ„±

πŸ’‘ μ˜μ‚¬ μ½”λ“œλŠ” λ™μž‘ μ€‘μ‹¬μœΌλ‘œ μž‘μ„±ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.

πŸ’‘ μ˜μ‚¬ μ½”λ“œλŠ” 문제 ν•΄κ²° μˆœμ„œλ‘œ μž‘μ„±ν•©λ‹ˆλ‹€.

πŸ’‘ μ˜μ‚¬ μ½”λ“œλ₯Ό μΆ©λΆ„νžˆ ν…ŒμŠ€νŠΈν•΄λ΄…λ‹ˆλ‹€.

solution(int[] arr) {
    // 1. μŠ€νƒ 생성
    // 2. μŠ€νƒμ— 없을 μ‹œ λ‹΄μŒ
    // 3. μŠ€νƒμ— μžˆλŠ” κ°’ λ°˜ν™˜
}

 

 

κ΅¬ν˜„

import java.util.Stack;

public class Solution {
    public int[] solution(int[] arr) {
        Stack<Integer> stack = new Stack<>();
        for (int n : arr) {
            if (stack.isEmpty() || n != stack.peek()) {
                stack.push(n);
            }
        }

        int[] answer = new int[stack.size()];
        for (int i = answer.length - 1; i >= 0; i--) {
            answer[i] = stack.pop();
        }
        return answer;
    }
}
λ°˜μ‘ν˜•