[Algorithm] ๐ŸŒณ์ฟผ๋“œํŠธ๋ฆฌ ๋’ค์ง‘๊ธฐ

HaJingJingยท2021๋…„ 4์›” 3์ผ
0

Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
7/119

0. ๋ฌธ์ œ

์ฟผ๋“œ ํŠธ๋ฆฌ๋กœ ์••์ถ•ํ•œ ๊ทธ๋ฆผ์„ ์ƒํ•˜๋กœ ๋’ค์ง‘์–ด์„œ ๋‹ค์‹œ ์••์ถ•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•ด๋ผ

์ž…๋ ฅ
ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค(C)
์ฟผ๋“œ ํŠธ๋ฆฌ๋กœ ์••์ถ•ํ•œ ๊ทธ๋ฆผ ๋ฌธ์ž์—ด

์ถœ๋ ฅ
์ฃผ์–ด์ง„ ๊ทธ๋ฆผ์„ ์ƒํ•˜๋กœ ๋’ค์ง‘์€ ๊ฒฐ๊ณผ๋ฅผ ์ฟผ๋“œ ํŠธ๋ฆฌ ์••์ถ•ํ•ด์„œ ์ถœ๋ ฅ

1. ๋ฌธ์ œ ๊ฐ„๋‹จ ํ•ด์„

์••์ถ•๋œ ๋ฌธ์ž์—ด์„ ์ œ๊ณตํ•จ
์ด๋ฅผ ์ƒํ•˜๊ฐ€ ๋ฐ˜๋Œ€๋กœ ๋’ค์ง‘์–ด์„œ ์••์ถ•ํ•œ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•จ


2. ์•„์ด๋””์–ด

๐Ÿ’ก ์ƒ‰์ด ๋ชจ๋‘ ๊ฐ™์ง€ ์•Š์œผ๋ฉด 4๊ฐ€์ง€๋กœ ์ชผ๊ฐฌ : ๋ถ„ํ• ์ •๋ณต, ์žฌ๊ท€ํ•จ์ˆ˜
๐Ÿ’ก ์ƒํ•˜ ๋’ค์ง‘๊ธฐ : 0,1,2,3 ์œ„์น˜๋ฅผ 2,3,0,1๋กœ ์žฌ๋ฐฐ์น˜


3. ํ•ต์‹ฌ ํ’€์ด

1) ๋ถ„ํ• ์ •๋ณต

head++;
String str[] = new String[4];
str[0] = reverse(); // ์™ผ์ชฝ์ƒ๋‹จ
str[1] = reverse(); // ์˜ค๋ฅธ์ชฝ์ƒ๋‹จ
str[2] = reverse(); // ์™ผ์ชฝํ•˜๋‹จ
str[3] = reverse(); // ์˜ค๋ฅธ์ชฝํ•˜๋‹จ

2) ์ƒํ•˜ ๋’ค์ง‘๊ธฐ

return "x"+str[2]+str[3]+str[0]+str[1];

4. ์ฝ”๋“œ

import java.io.*;

public class QuadTree {
	static String s;
	static int head = 0;
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int C = Integer.parseInt(br.readLine());
		
		for(int i=0; i<C; i++) {
			head = 0;
			s = br.readLine();
			
			System.out.println(reverse());
		}
		
	}
	
	static String reverse() {
		
		if(s.charAt(head)!='x'){
			head++;
			return s.charAt(head-1)+"";
		} 
		
		// x์ด๋ฉด 4๊ฐ€์ง€ ๊ตฌ์—ญ์œผ๋กœ ์ชผ๊ฐœ์ง
		head++;
		String str[] = new String[4];
		str[0] = reverse(); // ์™ผ์ชฝ์ƒ๋‹จ
		str[1] = reverse(); // ์˜ค๋ฅธ์ชฝ์ƒ๋‹จ
		str[2] = reverse(); // ์™ผ์ชฝํ•˜๋‹จ
		str[3] = reverse(); // ์˜ค๋ฅธ์ชฝํ•˜๋‹จ
		
		return "x"+str[2]+str[3]+str[0]+str[1];
	}

}

5. ๊ฒฐ๊ณผ

์„ฑ๊ณต~

profile
๐ŸŒฑ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๐ŸŒฑ

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด