말랑한 하루
[SW Expert Academy] 4366 정식이의 은행업무 [Java] 본문
반응형
[ 시간복잡도 ]
[ 핵심풀이 ]
String의 substring으로 만드는 방법과
StringBuilder의 charAt(index, value)로 변경하는 방법 두가지가있다.
참고 하면 좋을것같다.
[ 핵심소스 ]
StringBuilder sb = new StringBuilder(temp3);
if (temp3.charAt(i) == '0') {
sb.setCharAt(i, '1');
l3.add(Long.parseLong(""+sb, 3));
}
[ Java ]
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class _4366_정식이의_은행업무 {
static String temp2;
static String temp3;
static void init() {
Scanner sc = new Scanner(System.in);
int tc = sc.nextInt();
for(int t=1;t<=tc;t++) {
temp2=sc.next();
temp3=sc.next();
System.out.print("#"+t+" ");
solve();
}
}
static void solve() {
List<Long> l3 = new ArrayList<Long>();
ch3(temp3, l3);
ch2(temp2, l3);
}
static void ch2(String value, List<Long> l3) {
for(int i=0;i<temp2.length();i++) {
StringBuilder sb = new StringBuilder(temp2);
if (temp2.charAt(i) == '1')
sb.setCharAt(i, '0');
else
sb.setCharAt(i, '1');
Long ret = Long.parseLong(""+sb, 2);
if (l3.contains(ret)) {
System.out.println(ret);
return;
}
}
}
static void ch3(String value, List<Long> l3) {
for(int i=0;i<temp3.length();i++) {
StringBuilder sb = new StringBuilder(temp3);
if (temp3.charAt(i) == '0') {
sb.setCharAt(i, '1');
l3.add(Long.parseLong(""+sb, 3));
sb.setCharAt(i, '2');
l3.add(Long.parseLong(""+sb, 3));
}
else if (temp3.charAt(i) == '1') {
sb.setCharAt(i, '0');
l3.add(Long.parseLong(""+sb, 3));
sb.setCharAt(i, '2');
l3.add(Long.parseLong(""+sb, 3));
}
else {
sb.setCharAt(i, '0');
l3.add(Long.parseLong(""+sb, 3));
sb.setCharAt(i, '1');
l3.add(Long.parseLong(""+sb, 3));
}
}
}
public static void main(String[] args) {
init();
}
}
반응형
'문제풀이 > SWexpert Academy' 카테고리의 다른 글
[SW Expert Academy] 1860 진기의 최고급 붕어빵 [Java] (0) | 2021.02.01 |
---|---|
[SW Expert Academy] 9280 진용이네 주차타워 [Java] (0) | 2021.01.31 |
[SW Expert Academy] 7272 안경이 없어! [Java] (0) | 2021.01.31 |
[SW Expert Academy] 2930 힙 [Java] (0) | 2021.01.30 |
[SW Expert Academy] 1217 거듭 제곱 [Java] (0) | 2021.01.30 |
Comments