반응형
[광고 누르면 오늘의 행운 상승!!]
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;
}
}
}
}
}
}
}
}
반응형
'2. 알고리즘사이트 > 2. Swea' 카테고리의 다른 글
견우와 직녀 [SWEA 4727][JAVA][D4][BFS] (0) | 2020.05.20 |
---|---|
이상한 피라미드 탐험 [SWEA 4112][JAVA][D5][BFS][List] (0) | 2020.05.04 |
등산로 조성 [SWEA 1949][JAVA][모의 SW역량 테스트][DFS] (0) | 2020.05.01 |
보물상자 비밀번호 [SWEA 5658][JAVA][모의 SW 역량테스트] (0) | 2020.04.29 |
추억의 2048게임 [SWEA 6109][JAVA][Dequeue] (0) | 2020.04.29 |