2. 알고리즘사이트/2. Swea
정식이의 은행업무 [SWEA 4366][JAVA][D4][String]
isaacToast
2020. 5. 1. 17:36
반응형
[광고 누르면 오늘의 행운 상승!!]
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;
}
}
}
}
}
}
}
}
반응형