๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

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

 

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

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


1. ๋ฌธ์ œ

์˜์–ด ๋๋ง์ž‡๊ธฐ

1) ์ค‘๋ณต๋˜๋ฉด ํƒˆ๋ฝ

2) ์•ž์˜ ๋งจ๋ ๋ฌธ์ž์™€ ๋’ค์˜ ๋งจ์•ž๋ฌธ์ž๊ฐ€ ์ผ์น˜ํ•ด์•ผ ์ด์–ด์ง, ๋‹ค๋ฅด๋ฉด ํƒˆ๋ฝ

 

2. ํ’€์ด

์ด์ค‘ for๋ฌธ์œผ๋กœ ํ’€๋ฉด ๋น„ํšจ์œจ์ ์ด๋‹ค.

HashSet์„ ํ™œ์šฉํ•˜์—ฌ ์ด์ค‘for๋ฌธ์„ ์“ฐ์ง€ ์•Š์•˜๋‹ค.

1. HashSet์— ๋งจ ์ฒซ ๋‹จ์–ด๋ถ€ํ„ฐ ๋„ฃ๊ณ  ์‹œ์ž‘ํ•˜์—ฌ for๋ฌธ์„ 1๋ถ€ํ„ฐ n-1๋ฒˆ๊นŒ์ง€ ๋ˆ๋‹ค.

2. ํ˜„์žฌ words๊ฐ€ HashSet์— contains ๋˜๊ฑฐ๋‚˜, ํ˜„์žฌ words์˜ ๋งจ ์•ž๋ฌธ์ž์™€ ์ด์ „words์˜ ๋งจ ๋’ค ๋ฌธ์ž๊ฐ€ ๋‹ค๋ฅด๋ฉด ํƒˆ๋ฝ

 

 

3. ์ฝ”๋“œ

๋”๋ณด๊ธฐ
package p230109;

import java.io.*;
import java.util.*;

class PG_์˜์–ด๋๋ง์ž‡๊ธฐ {

	public static void main(String[] args) {
		int n = 2;//3,5,2
		String[] words = 
			{"abb", "baa", "ccc", "cda", "abb"};
//		{"hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"};
//		{"hello", "one", "even", "never", "now", "world", "draw"};
		solution(n, words);
	}
	
	static int[] solution(int n, String[] words) {
		int[] answer = new int[2];
		
		HashSet<String> set = new HashSet<String>();
		
		set.add(words[0]);
		for (int i=1; i<words.length; i++) {
			String last = words[i-1];
			if (set.contains(words[i]) || words[i].charAt(0)!=last.charAt(last.length()-1)) {
				answer[0] = i%n+1;
				answer[1] = i/n+1;
				break;
			}
			set.add(words[i]);
		}
		
		return answer;
	}
}

 

4. ์‚ฌ๋‹ด

์˜ค๋ž˜๊ฑธ๋ ธ๋‹ค..

๊ทธ๋ฆฌ๊ณ  ์ด์ค‘ for๋ฌธ์„ HashSet์œผ๋กœ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ฒ˜์Œ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค.