프로그래머스_영어 끝말잇기

hwang·2024년 11월 2일

import java.util.HashSet;
import java.util.Set;

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


        Set<String> set = new HashSet<>();
		//중복제거 
		set.add(words[0]);
		
		for(int i = 1; i< words.length; i++) {
			set.add(words[i]);
			if(set.size() != (i+1) || (words[i-1].charAt(words[i-1].length()-1) != words[i].charAt(0))) {
                System.out.println(i);
				if((i+1)%n == 0) {
					answer [0] = n;
                    answer [1] = (i+1)/n;
				}else {
					answer [0] = (i+1)%n;
                    answer [1] = ((i+1)/n)+1;
				}
               
				break;
			}
		}

        return answer;
    }
}

다른 풀이를 보고 얻은 것 )
set은 .add()할 때 중복이 있을 경우 false를 return 한다
idx 를 나처럼 +1 하지않고 간단하게 idx % n +1 , idx / n +1 로 구함.
set말고 list로 contains 를 사용한 경우도 있었음.

잡담)
코딩테스트는 객체의 특성을 공부해야겠다는 생각이 든다.
실무를 하다보면 쓰는것만 써서 안쓰건 다 까먹게 된다..
핑계 그만대고 초심 찾고 객체 열심히 공부해서 코테에서 야무지게 써먹어주마 !

profile
🍀

0개의 댓글