문제 : boj22935
우선 이 문제를 풀기 위해 알아야 하는 2가지 정보를 확인해보자.
A. 1부터 15까지 출력해야 하는 문자열
미리 전처리로 만들어두면 된다! 이하 코드에서 init()이 이 역할을 한다. 비트연산을 사용해 문제에서 제시된 대로 문자열을 만들어주면 된다. 1부터 15까지를 전부 만들어보면 다음과 같다.
B. 이제 입력으로 들어온 N이 'A' 중 뭐에 해당하는지를 확인하면 된다.
이건 나머지 연산을 사용해서 쉽게 구할 수 있다. 아래 코드를 참고해보자.
코드 : github
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
String[] arr;
private void init() {
arr = new String[16];
for (int i = 1; i <= 15; i++) {
StringBuilder tmp = new StringBuilder();
for (int j = 3; j >= 0; j--) {
tmp.append((i&1<<j)!=0 ? "딸기":"V");
}
arr[i] = tmp.toString();
}
}
private void solution() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
init();
int t = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
while (t-->0) {
int n = Integer.parseInt(br.readLine()) - 1;
n%=28;
n++;
if (n<=15) {
sb.append(arr[n]).append('\n');
} else {
sb.append(arr[30-n]).append('\n');
}
}
System.out.print(sb);
}
public static void main(String[] args) throws Exception {
new Main().solution();
}
}
'PS > BOJ' 카테고리의 다른 글
[자바] 백준 2246 - 콘도 선정 (boj java) (0) | 2022.05.03 |
---|---|
[자바] 백준 11576 - Base Conversion (boj java) (0) | 2022.05.02 |
[자바] 백준 8244 - Tales of seafaring (boj java) (0) | 2022.04.30 |
[자바] 백준 13222 - Matches (boj java) (0) | 2022.04.29 |
[자바] 백준 1241 - 머리 톡톡 (boj java) (0) | 2022.04.28 |
댓글