๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜/์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œํ’€์ด

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค-49190] ๋ฐฉ์˜ ๊ฐœ์ˆ˜

by alswlfl 2026. 7. 26.

[๊ทธ๋ž˜ํ”„]-๋ฐฉ์˜ ๊ฐœ์ˆ˜

 

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

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก์˜ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

๋ฌธ์ œ ์„ค๋ช…

๋ฐฉ์˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ(๊ทธ๋ฆผ์„ ๊ทธ๋ฆด ๋•Œ ์‚ฌ๋ฐฉ์ด ๋ง‰ํžˆ๋ฉด ๋ฐฉํ•˜๋‚˜๋กœ ๊ฐ„์ฃผ)

์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

arrows result
[6, 6, 6, 4, 4, 4, 2, 2, 2, 0, 0, 0, 1, 6, 5, 5, 3, 6, 0] 3

 

ํ’€์ด ๋ฐฉ๋ฒ•(๋‹ค๋ฅธ ํ’€์ด ์ฐธ๊ณ ํ•จ)

์šฐ์„  ๋ฐฉ์˜ ์ƒ์„ฑ ์กฐ๊ฑด์„ ๋ถ„์„ํ•˜๋ฉด, ์ด๋ฏธ ๋ฐฉ๋ฌธํ•œ ์ •์ ์„ ๋‹ค์‹œ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒฝ์šฐ ํ•˜๋‚˜์˜ ๋ฐฉ์ด ์ƒ์„ฑ๋œ๋‹ค.

ํ•˜์ง€๋งŒ, ์•„๋ž˜์™€ ๊ฐ™์ด ์ด๋ฏธ ๋ฐฉ๋ฌธํ•œ ์ •์ ์ด์ง€๋งŒ ์ด๋ฏธ ์ง€๋‚˜์˜จ ๊ฐ„์„ ์„ ํ†ตํ•ด ์˜ค๋Š” ๊ฒฝ์šฐ๋Š” ๋ฐฉ์˜ ์ƒ์„ฑ ์กฐ๊ฑด์— ํ•ด๋‹น๋˜์ง€ ์•Š๋Š”๋‹ค.

 

์ฆ‰, ๋ฐฉ์˜ ์ƒ์„ฑ ์กฐ๊ฑด์€ ์•„๋ž˜ 2๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค.

  1. ์ด๋ฏธ ๋ฐฉ๋ฌธํ•œ ์ •์ ์„ ๋‹ค์‹œ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒฝ์šฐ
  2. ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฐ„์„ ์ด ์ฒ˜์Œ ์˜ค๋Š” ๊ฐ„์„ ์ธ ๊ฒฝ์šฐ

๋˜ ํ•˜๋‚˜ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š” ์ ์ด ๋Œ€๊ฐ์„  ๋ฐฉํ–ฅ์œผ๋กœ๋„ ์ด๋™ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ ์ด๋‹ค.

์ด ๋ถ€๋ถ„์„ ๊ณ ๋ คํ•ด, ๊ทธ๋ž˜ํ”„๋ฅผ 2๋ฐฐ๋กœ ๋„“ํ˜€ ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ์Œ

ํ—ท๊ฐˆ๋ ธ๋˜ ๋ถ€๋ถ„,,

์˜ˆ๋ฅผ ๋“ค์–ด arrows = [6, 6, 6, 4, 4, 4, 2, 2, 2, 0, 0, 0, 1, 6, 5, 6, 6, 4, 2, 2, 2, 0]์ธ ๊ฒฝ์šฐ, ์ด๋ฏธ ๋ฐฉ๋ฌธํ•œ ์ •์  & ์ด๋ฏธ ๋ฐฉ๋ฌธํ•œ ๊ฒฝ๋กœ๋Š” ๋ฐฉ์˜ ๊ฐœ์ˆ˜์— ์นด์šดํŠธ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋ฐ ์ด ์˜ˆ์ œ๋กœ ํ•˜๊ฒŒ ๋˜๋ฉด ๋ฐฉ์˜ ์ตœ์ข…์ ์œผ๋กœ 2๊ฐœ๊ฐ€ ์ƒ๊ธฐ๋Š”๊ฒŒ ์•„๋‹๊นŒ?(์‹ค์ œ๋กœ๋Š” ๋ฐฉ 3๊ฐœ ์ƒ์„ฑ)

๋ผ๊ณ  ์ƒ๊ฐํ•จ

๋งˆ์ง€๋ง‰ 0 ๋ฐฉํ–ฅ์œผ๋กœ ํ–ˆ์„ ๋•Œ ์„ธ ๋ฒˆ์งธ ๋ฐฉ์ด ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, 21๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ์žˆ๋Š” 2 ๋ฐฉํ–ฅ๋•Œ ์„ธ ๋ฒˆ์งธ ๋ฐฉ์ด ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ!

 

์ฝ”๋“œ

import java.util.*;

class Solution {
    static int[][] directions = {
        {0, 1}, // 0
        {1, 1}, // 1
        {1, 0}, // 2
        {1, -1}, // 3
        {0, -1}, // 4
        {-1, -1}, // 5
        {-1, 0}, // 6
        {-1, 1} // 7
    };
    
    public int solution(int[] arrows) {
        int answer = 0;
        
        // ์ •์  ๋ฐฉ๋ฌธ ์—ฌ๋ถ€ ํ™•์ธ์„ ์œ„ํ•œ ํ•ด์‹œSet ์ด์šฉ
        Set<String> visitedNode = new HashSet<>();
        // ๊ฐ„์„  ๋ฐฉ๋ฌธ ์—ฌ๋ถ€ ํ™•์ธ์„ ์œ„ํ•œ ํ•ด์‹œSet ์ด์šฉ
        Set<String> visitedEdge = new HashSet<>();
        
        int currentX = 0;
        int currentY = 0;
        // ์‹œ์ž‘ ์œ„์น˜(0, 0) ์ •์  ๋ฐฉ๋ฌธ ํ‘œ์‹œ
        visitedNode.add(String.format("%d/%d", currentX, currentY));
        
        for(int arrow : arrows) {
            // ๊ทธ๋ž˜ํ”„๋ฅผ 2๋ฐฐ๋กœ ์Šค์ผ€์ผ์—…(๋Œ€๊ฐ์„  ์ด๋™ ๊ฒฝ๋กœ๋ฅผ ์œ„ํ•ด)
            for(int i=0; i<2; i++) {
                int nextX = currentX + directions[arrow][0];
                int nextY = currentY + directions[arrow][1];
            
                String nextNode = String.format("%d/%d", nextX, nextY);
                String currentToNext = String.format("%d/%d/%d/%d", currentX, currentY, nextX, nextY);
                // ์ด๋ฏธ ๋ฐฉ๋ฌธํ•œ ์ •์ ์ด๋ฉด์„œ, ์ƒˆ๋กœ์šด ๊ฐ„์„ ์œผ๋กœ ์ด๋™ํ•œ ๊ฒฝ์šฐ => ๋ฐฉ ํ•˜๋‚˜ ์ƒ์„ฑ
                if(visitedNode.contains(nextNode) 
                && !visitedEdge.contains(currentToNext)){
                    answer++; // ๋ฐฉ ์ƒ์„ฑ
                }
            
                visitedNode.add(nextNode); // ๋‹ค์Œ ์ด๋™ ์ขŒํ‘œ ๋ฐฉ๋ฌธ ํ‘œ์‹œ
                visitedEdge.add(currentToNext); // ํ˜„์žฌ ์œ„์น˜ -> ๋‹ค์Œ ์œ„์น˜ ๊ฒฝ๋กœ ํ‘œ์‹œ
                String nextToCurrent = String.format("%d/%d/%d/%d", nextX, nextY, currentX, currentY); // ๋ฐ˜๋Œ€ ์ด๋™ ๊ฒฝ๋กœ์ธ ๋‹ค์Œ ์œ„์น˜ -> ํ˜„์žฌ ์œ„์น˜ ๊ฒฝ๋กœ ํ‘œ์‹œ
                visitedEdge.add(nextToCurrent);

                currentX = nextX;
                currentY = nextY;
            }
        }

        return answer;
    }
}

์ฐธ๊ณ  ์‚ฌ์ดํŠธ

https://yabmoons.tistory.com/606

 

[ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐฉ์˜ ๊ฐœ์ˆ˜ (Lv5) ] (C++)

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๋ฐฉ์˜ ๊ฐฏ์ˆ˜(Lv5) ๋ฌธ์ œ์ด๋‹ค. [ ๋ฌธ์ œํ’€์ด ]์ฃผ์–ด์ง„ ๋ฐฉํ–ฅ๋Œ€๋กœ ์„ ์„ ๊ทธ์—ˆ์„ ๋•Œ, ๋งŒ๋“ค์–ด ์ง„ ๋ฐฉ์˜ ๊ฐฏ์ˆ˜๋ฅผ return ํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.์ƒ๊ฐ๋ณด๋‹ค ๋ฌธ์ œ๊ฐ€ ๋‹จ์ˆœํ•ด ๋ณด์ด์ง€๋งŒ, ๋ณด์ด์ง€ ์•Š๋Š” ํ•จ์ • ๊ฐ™

yabmoons.tistory.com