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

์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€

[๋ฐฑ์ค€ ์Šคํ„ฐ๋”” 10์ฃผ์ฐจ] 17609๋ฒˆ ํšŒ๋ฌธ ์‹ค๋ฒ„1 - ์ž๋ฐ”(JAVA)/ ๊ตฌํ˜„/ ๋ฌธ์ž์—ด

๐Ÿ“‘ ๋ฌธ์ œ

https://www.acmicpc.net/problem/17609

 

17609๋ฒˆ: ํšŒ๋ฌธ

๊ฐ ๋ฌธ์ž์—ด์ด ํšŒ๋ฌธ์ธ์ง€, ์œ ์‚ฌ ํšŒ๋ฌธ์ธ์ง€, ๋‘˜ ๋ชจ๋‘ ํ•ด๋‹น๋˜์ง€ ์•Š๋Š”์ง€๋ฅผ ํŒ๋‹จํ•˜์—ฌ ํšŒ๋ฌธ์ด๋ฉด 0, ์œ ์‚ฌ ํšŒ๋ฌธ์ด๋ฉด 1, ๋‘˜ ๋ชจ๋‘ ์•„๋‹ˆ๋ฉด 2๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

๋”๋ณด๊ธฐ
๋”๋ณด๊ธฐ

๋ฌธ์ œ

ํšŒ๋ฌธ(ๅ›žๆ–‡) ๋˜๋Š” ํŒฐ๋ฆฐ๋“œ๋กฌ(palindrome)์€ ์•ž ๋’ค ๋ฐฉํ–ฅ์œผ๋กœ ๋ณผ ๋•Œ ๊ฐ™์€ ์ˆœ์„œ์˜ ๋ฌธ์ž๋กœ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด์„ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ‘abba’ ‘kayak’, ‘reviver’, ‘madam’์€ ๋ชจ๋‘ ํšŒ๋ฌธ์ด๋‹ค. ๋งŒ์ผ ๊ทธ ์ž์ฒด๋Š” ํšŒ๋ฌธ์ด ์•„๋‹ˆ์ง€๋งŒ ํ•œ ๋ฌธ์ž๋ฅผ ์‚ญ์ œํ•˜์—ฌ ํšŒ๋ฌธ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์—ด์ด๋ผ๋ฉด ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฐ ๋ฌธ์ž์—ด์„ “์œ ์‚ฌํšŒ๋ฌธ”(pseudo palindrome)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ‘summuus’๋Š” 5๋ฒˆ์งธ๋‚˜ ํ˜น์€ 6๋ฒˆ์งธ ๋ฌธ์ž ‘u’๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ‘summus’์ธ ํšŒ๋ฌธ์ด ๋˜๋ฏ€๋กœ ์œ ์‚ฌํšŒ๋ฌธ์ด๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์€ ์ œ์‹œ๋œ ๋ฌธ์ž์—ด์„ ๋ถ„์„ํ•˜์—ฌ ๊ทธ๊ฒƒ์ด ๊ทธ ์ž์ฒด๋กœ ํšŒ๋ฌธ์ธ์ง€, ๋˜๋Š” ํ•œ ๋ฌธ์ž๋ฅผ ์‚ญ์ œํ•˜๋ฉด ํšŒ๋ฌธ์ด ๋˜๋Š” “์œ ์‚ฌํšŒ๋ฌธ”์ธ์ง€, ์•„๋‹ˆ๋ฉด ํšŒ๋ฌธ์ด๋‚˜ ์œ ์‚ฌํšŒ๋ฌธ๋„ ์•„๋‹Œ ์ผ๋ฐ˜ ๋ฌธ์ž์—ด์ธ์ง€๋ฅผ ํŒ๋‹จํ•ด์•ผ ํ•œ๋‹ค. ๋งŒ์ผ ๋ฌธ์ž์—ด ๊ทธ ์ž์ฒด๋กœ ํšŒ๋ฌธ์ด๋ฉด 0, ์œ ์‚ฌํšŒ๋ฌธ์ด๋ฉด 1, ๊ทธ ์™ธ๋Š” 2๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

์ž…๋ ฅ

์ž…๋ ฅ์˜ ์ฒซ ์ค„์—๋Š” ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ T(1 ≤ T ≤ 30)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„๋ถ€ํ„ฐ T๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ํ•œ ์ค„์— ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด์ด ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 3 ์ด์ƒ 100,000 ์ดํ•˜์ด๊ณ , ์˜๋ฌธ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

์ถœ๋ ฅ

๊ฐ ๋ฌธ์ž์—ด์ด ํšŒ๋ฌธ์ธ์ง€, ์œ ์‚ฌ ํšŒ๋ฌธ์ธ์ง€, ๋‘˜ ๋ชจ๋‘ ํ•ด๋‹น๋˜์ง€ ์•Š๋Š”์ง€๋ฅผ ํŒ๋‹จํ•˜์—ฌ ํšŒ๋ฌธ์ด๋ฉด 0, ์œ ์‚ฌ ํšŒ๋ฌธ์ด๋ฉด 1, ๋‘˜ ๋ชจ๋‘ ์•„๋‹ˆ๋ฉด 2๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

 

 

โœ’๏ธ ํ’€์ด

 ํŒฐ๋ฆฐ๋“œ๋กฌ(ํšŒ๋ฌธ)์ด๋ผ๋Š” ๊ฐœ๋…์„ ์ฒ˜์Œ ์ ‘ํ•ด๋ณธ ๋ฌธ์ œ์˜€๋‹ค.

 

 โœ”๏ธ ๋ฌธ์ž์—ด์ด ํŒฐ๋ฆฐ๋“œ๋กฌ์ธ์ง€ ๋จผ์ € ํ™•์ธํ•œ๋‹ค. ์ฒ˜์Œ๊ณผ ๋๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ๋ฌธ์ž๊ฐ€ ์ผ์น˜ํ•˜๋Š”์ง€ ์ฒดํฌํ•˜๋ฉด ๋œ๋‹ค. ํ•˜๋‚˜๋ผ๋„ ๋‹ค๋ฅผ ๊ฒฝ์šฐ ํŒฐ๋ฆฐ๋“œ๋กฌ์ด ์•„๋‹ˆ๋‹ค.

 โœ”๏ธ ํŒฐ๋ฆฐ๋“œ๋กฌ์ด ์•„๋‹ ๊ฒฝ์šฐ ์œ ์‚ฌํšŒ๋ฌธ์ธ์ง€๋ฅผ ์ฒดํฌํ•œ๋‹ค. ํ™•์ธ ์ค‘์ธ ๋ฌธ์ž์—ด์˜ ๋งจ ์™ผ์ชฝ์ด๋‚˜ ๋งจ ์˜ค๋ฅธ์ชฝ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์ง€์›Œ์„œ ํšŒ๋ฌธ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜๊ณ , ๊ทธ๋Ÿผ์—๋„ ์–‘์ชฝ ์–ด๋””๋„ ํšŒ๋ฌธ์ด ์•„๋‹ˆ๋ผ๋ฉด ๊ทธ ๋ฌธ์ž์—ด์€ ์œ ์‚ฌํšŒ๋ฌธ์ด ์•„๋‹ˆ๋‹ค.

 

 

 

 

 

 

 

๐Ÿ’ป ์†Œ์Šค์ฝ”๋“œ: ์ž๋ฐ”(Java)

public class Main_๋ฐฑ์ค€_17609_ํšŒ๋ฌธ_์‹ค๋ฒ„I {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());
		for (int i = 0; i < N; i++) {
			String str = br.readLine();
			if(palindrome(str)) System.out.println(0);
			else if(pseudonym(str)) System.out.println(1);
			else System.out.println(2);
		}
	}//end of main
	
	private static boolean palindrome(String str) {//ํšŒ๋ฌธ
		int left = 0, right=str.length()-1;
		while(left<=right) {
			if(str.charAt(left++)!=str.charAt(right--)) return false;
		}
		return true;
	}//end of palindrome
	
	private static boolean pseudonym(String str) {//์œ ์‚ฌํšŒ๋ฌธ
		int left=0, right=str.length()-1;
		while(left<=right) {
			if(str.charAt(left)!=str.charAt(right)) {
				return palindrome(str.substring(left,right)) || 
						palindrome(str.substring(left+1, right+1));		
			}
			left++;
			right--;
		}
		return true;
	}//end of pseudonym
}//end of class

 

 

 

 

 

 

 

 

 

 

๐Ÿ’Ž ๐Ÿ’Ž ๐Ÿ’Ž

 

 

๏ผฐ๏ฝ๏ฝ“๏ฝ”๏ฝ…๏ฝ„ ๏ผข๏ฝ™ ๏ผณ๏ผก๏ผน

๐˜›๐˜ฉ๐˜ข๐˜ฏ๐˜ฌ๐˜ด ๐˜ง๐˜ฐ๐˜ณ ๐˜ณ๐˜ฆ๐˜ข๐˜ฅ๐˜ช๐˜ฏ๐˜จ