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

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์˜์–ด ๋๋ง์ž‡๊ธฐ

giraffe_ 2022. 6. 4. 16:53

https://programmers.co.kr/learn/courses/30/lessons/12981

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์˜์–ด ๋๋ง์ž‡๊ธฐ

3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0]

programmers.co.kr

 

 

 

 

 

๋ฌธ์ž์—ด์„ ๋‹ค๋ฃจ๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋ฌธ์ž์—ด์—์„œ ๋ฌธ์ž๋ฅผ ๋ฝ‘์•„๋‚ด๊ธฐ ์œ„ํ•ด์„œ str.charAt(i)๊ณผ ๊ฐ™์€ ๋ฉ”์†Œ๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ž์—ด ๋ฐฐ์—ด์˜ ๊ธธ์ด vs ๋ฌธ์ž์—ด์˜ ๊ธธ์ด

words.length vs word.length()

 

์ž๋ฃŒ๊ตฌ์กฐ๋Š” ArrayList๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๋ณต์„ ์ฒดํฌํ•˜๋„๋ก ํ–ˆ๋‹ค.

 

+ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ณด๋‹ˆ HashSet์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

HashSet : ์ค‘๋ณต์„ ์ž๋™์œผ๋กœ ์ œ๊ฑฐํ•ด์„œ ์ €์žฅํ•œ๋‹ค.

 

https://coding-factory.tistory.com/554

 

[Java] ์ž๋ฐ” HashSet ์‚ฌ์šฉ๋ฒ• & ์˜ˆ์ œ ์ด์ •๋ฆฌ

HashSet์ด๋ž€? HashSet์€ Set ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— Set์˜ ์„ฑ์งˆ์„ ๊ทธ๋Œ€๋กœ ์ƒ์†๋ฐ›์Šต๋‹ˆ๋‹ค. Set์€ ๊ฐ์ฒด๋ฅผ ์ค‘๋ณตํ•ด์„œ ์ €์žฅํ•  ์ˆ˜ ์—†๊ณ  ํ•˜๋‚˜์˜ null ๊ฐ’๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ €์žฅ ์ˆœ

coding-factory.tistory.com

 

 

 

์ฝ”๋“œ

import java.util.*;

class Solution {
    public int[] solution(int n, String[] words) {
        int[] answer = {0, 0};

        ArrayList<String> list = new ArrayList<>();
        
        for(int i = 0; i < words.length; i++) {
            if(i >= 1) { //๋‹ค๋ฅธ ๊ธ€์ž๋กœ ์‹œ์ž‘
                char ch1 = words[i - 1].charAt(words[i - 1].length() - 1);
                char ch2 = words[i].charAt(0);
                
                if(ch1 != ch2) {
                    answer[0] = i % n + 1;
                    answer[1] = i / n + 1;
                    
                    break;
                }
            }
            
            
            if(!list.contains(words[i])) { //์ค‘๋ณต๋œ ๋‹จ์–ด ๋งํ•จ
                list.add(words[i]);
            } else {
                answer[0] = i % n + 1;
                answer[1] = i / n + 1;
                
                break;
            }
        }

        return answer;
    }
}

 

 

 

 

 

๊ฒฐ๊ณผ