ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Algo Rhythm๐Ÿ•บ๐Ÿ’ƒ] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ณ ๋“์  kit ๋‹จ์†์นด๋ฉ”๋ผ
    Algo Rhythm๐Ÿ•บ๐Ÿ’ƒ/Programmers 2020. 7. 16. 12:30

    ๐Ÿ“š ๋ฌธ์ œ ์„ค๋ช…

    ๊ณ ์†๋„๋กœ๋ฅผ ์ด๋™ํ•˜๋Š” ๋ชจ๋“  ์ฐจ๋Ÿ‰์ด ๊ณ ์†๋„๋กœ๋ฅผ ์ด์šฉํ•˜๋ฉด์„œ ๋‹จ์†์šฉ ์นด๋ฉ”๋ผ๋ฅผ ํ•œ ๋ฒˆ์€ ๋งŒ๋‚˜๋„๋ก ์นด๋ฉ”๋ผ๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

    ๊ณ ์†๋„๋กœ๋ฅผ ์ด๋™ํ•˜๋Š” ์ฐจ๋Ÿ‰์˜ ๊ฒฝ๋กœ routes๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋ชจ๋“  ์ฐจ๋Ÿ‰์ด ํ•œ ๋ฒˆ์€ ๋‹จ์†์šฉ ์นด๋ฉ”๋ผ๋ฅผ ๋งŒ๋‚˜๋„๋ก ํ•˜๋ ค๋ฉด ์ตœ์†Œ ๋ช‡ ๋Œ€์˜ ์นด๋ฉ”๋ผ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.

     

    ์ œํ•œ์‚ฌํ•ญ

    • ์ฐจ๋Ÿ‰์˜ ๋Œ€์ˆ˜๋Š” 1๋Œ€ ์ด์ƒ 10,000๋Œ€ ์ดํ•˜์ž…๋‹ˆ๋‹ค.

    • routes์—๋Š” ์ฐจ๋Ÿ‰์˜ ์ด๋™ ๊ฒฝ๋กœ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ routes[i][0]์—๋Š” i๋ฒˆ์งธ ์ฐจ๋Ÿ‰์ด ๊ณ ์†๋„๋กœ์— ์ง„์ž…ํ•œ ์ง€์ , routes[i][1]์—๋Š” i๋ฒˆ์งธ ์ฐจ๋Ÿ‰์ด ๊ณ ์†๋„๋กœ์—์„œ ๋‚˜๊ฐ„ ์ง€์ ์ด ์ ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์ฐจ๋Ÿ‰์˜ ์ง„์ž…/์ง„์ถœ ์ง€์ ์— ์นด๋ฉ”๋ผ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด๋„ ์นด๋ฉ”๋ผ๋ฅผ ๋งŒ๋‚œ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.

    • ์ฐจ๋Ÿ‰์˜ ์ง„์ž… ์ง€์ , ์ง„์ถœ ์ง€์ ์€ -30,000 ์ด์ƒ 30,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.

     

    ๐ŸŽฏ ์–ด๋–ป๊ฒŒ ํ’€์—ˆ๋‚˜

    import java.util.Arrays;
    
    class Solution {
        public int solution(int[][] routes) {
            int nCamera = routes.length; // ๋ชจ๋“  ์ฐจ๋“ค์˜ ์ด๋™ ๊ตฌ๊ฐ„๋งˆ๋‹ค ์นด๋ฉ”๋ผ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ๊ฐ€์ •
            
            // ์ฐจ๋Ÿ‰์˜ ์ง„์ž… ์ง€์ ์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
            Arrays.sort(routes, (o1, o2) -> Integer.compare(o1[0], o2[0]));
            
            int pEnter1 = routes[0][0];
            int pExit1 = routes[0][1];
            
            for(int i = 1; i < routes.length; i++) {
                int pEnter2 = routes[i][0];
                int pExit2 = routes[i][1];
                
                // ํ•œ ์ฐจ๋Ÿ‰์˜ ์ด๋™๊ตฌ๊ฐ„์ด ๋‹ค๋ฅธ ์ฐจ๋Ÿ‰์˜ ์ด๋™๊ตฌ๊ฐ„์„ ์™„์ „ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ
                if(pEnter1 <= pEnter2 && pExit1 >= pExit2) {
                    pEnter1 = pEnter2;
                    pExit1 = pExit2;
                    
                    nCamera--;
                    continue;
                }
                
                // ํ•œ ์ฐจ๋Ÿ‰์˜ ์ด๋™๊ตฌ๊ฐ„์ด ๋‹ค๋ฅธ ์ฐจ๋Ÿ‰์˜ ์ด๋™๊ตฌ๊ฐ„์„ ๋ถ€๋ถ„ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ
                if(pEnter1 <= pEnter2 && pExit1 < pExit2 && pExit1 >= pEnter2) {
                    pEnter1 = pEnter2;
                    pExit1 = (pExit1 <= pExit2) ? pExit1 : pExit2;
                    
                    nCamera--;
                    continue;
                }
                
                pEnter1 = pEnter2;
                pExit1 = pExit2;
            }
            
            return nCamera;
        }
    }

     

    ๐Ÿง ์™œ ์ €๋ ‡๊ฒŒ ํ’€์—ˆ๋‚˜

    ๋‚ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•ต์‹ฌ์€ 'ํ•œ ์ฐจ์˜ ์ด๋™๊ตฌ๊ฐ„์ด ๋‹ค๋ฅธ ์ฐจ์˜ ์ด๋™๊ตฌ๊ฐ„์„ ํฌํ•จํ•˜๋ฉด ๊ฒน์น˜๋Š” ์ด๋™๊ตฌ๊ฐ„์„ ์ƒˆ๋กœ์šด ์ฐจ ํ•˜๋‚˜์˜ ์ด๋™๊ตฌ๊ฐ„์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ธฐ' ์ด๋‹ค.

     

    ๋‚ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์—๋Š” ๊ฐ€์ •์ด ์žˆ๋Š”๋ฐ ๊ทธ๊ฒƒ์€ ๋ชจ๋“  ์ฐจ๋“ค์˜ ์ด๋™๊ตฌ๊ฐ„๋งˆ๋‹ค ์นด๋ฉ”๋ผ๊ฐ€ ํ•˜๋‚˜์”ฉ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ ๋‚˜์„œ ํ•œ ์ฐจ์˜ ์ด๋™๊ตฌ๊ฐ„์ด ๋‹ค๋ฅธ ์ฐจ์˜ ์ด๋™๊ตฌ๊ฐ„์„ ํฌํ•จํ•˜๋ฉด ๊ฒธ์น˜๋Š” ์ด๋™๊ตฌ๊ฐ„์„ ์ƒˆ๋กœ์šด ์ฐจ ํ•˜๋‚˜์˜ ์ด๋™๊ตฌ๊ฐ„์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ์นด๋ฉ”๋ผ ๊ฐœ์ˆ˜๋ฅผ ์ค„์—ฌ์ค€๋‹ค.

     

    ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ์ฐจ๋Ÿ‰์˜ ์ง„์ž… ์ง€์ ์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

    ๊ทธ๋ฆฌ๊ณ  ์ฐจ๋Ÿ‰์˜ ์ด๋™๊ตฌ๊ฐ„์„ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด๋ฉฐ ํฌํ•จ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š”๋ฐ ์ƒ๊ฐํ•ด๋ณด๋ฉด ํฌํ•จ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋‘ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋‘ ๊ฒฝ์šฐ๋งˆ๋‹ค ๊ฒน์น˜๋Š” ๊ตฌ๊ฐ„์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ๊ฐ„ ์ˆ˜์ •์„ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•œ๋‹ค.

     

    1. ์™„์ „ ํฌํ•จ

     

    2. ๋ถ€๋ถ„ ํฌํ•จ

     

    ๐Ÿ“– ๋ฌด์—‡์„ ๋ฐฐ์› ๋‚˜

    ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ต์ง€ ์•Š์•˜๋‹ค. ์•„๋งˆ ๊ทธ๋งŒํผ ์„ฑ์žฅํ–ˆ๋‹ค๋Š” ์ฆ๊ฑฐ์ผ ๊ฒƒ์ด๋‹ค ๐Ÿ˜†๐Ÿ˜†๐Ÿ˜†

    ๊ทธ๋ฆฌ๊ณ  ๋‚ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ทธ๋ฆฌ๋””๋ณด๋‹ค ์™„ํƒ์— ๊ฐ€๊นŒ์šด๋ฐ ๊ทธ๋ฆฌ๋””๋กœ๋Š” ์–ด๋–ป๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ณ ๋ฏผํ•ด์•ผ๊ฒ ๋‹ค.

    ๋Œ“๊ธ€

Designed by Tistory.