반응형

 

[광고 누르면 오늘의 행운 상승!!]

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWMeRLz6kC0DFAXd&categoryId=AWMeRLz6kC0DFAXd&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

String 문제

1. 참고사항 

- 원본 배열을 가지고 있어야 한개만 바꿨을 때 비교가 가능하다.

2. 구현

- 들어오는 값을 char[]에 저장한다.
- 2진수 배열을 값을 하나씩 바꾸면서 3진수 배열의 값을 하나씩 바꾼것과 비교한다.
- 중복순열로 구현할 수도 있지만 간단한 코딩을 위해 for문으로 구현하였다.
- Integer.parseInt(String.valueOf(tempTwoArr), 2); -> char[]배열을 String으로 변환 -> String을 2진수로 변환
- 둘의 변환값이 같으면 출력한다.

package Study6;

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

public class 정식이의은행업무 {
	static int[][] map;
	static boolean[] Twovisit;
	static int N,ans;
	static char two[] = {'0','1'};
	static char three[] = {'0','1','2'};
	
	public static void main(String[] args) throws Exception {
		System.setIn(new FileInputStream("test.txt"));
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int T = Integer.parseInt(st.nextToken());
		
		for (int tc = 1; tc <= T; tc++) {
			char[] TwoArr = br.readLine().toCharArray();
			char[] ThreeArr = br.readLine().toCharArray();
			
			char[] tempTwoArr = null;
			char[] tempThreeArr = null;
			
			loop : for (int i = 0; i < TwoArr.length; i++) {
				for (int j = 0; j < ThreeArr.length; j++) {
					
					for (int k = 0; k < two.length; k++) {
						tempTwoArr = TwoArr.clone();
						tempTwoArr[i] = two[k];
						for (int h = 0; h < three.length; h++) {
							tempThreeArr = ThreeArr.clone();
							tempThreeArr[j] = three[h];
							
							int t = Integer.parseInt(String.valueOf(tempTwoArr), 2);
							int t2 = Integer.parseInt(String.valueOf(tempThreeArr), 3);
							
							if(t == t2) {
								System.out.println("#" + tc + " " + t);
								break loop;
							}
						}
					}
					
				}
			}
		}
	}
}
반응형

+ Recent posts