CodingTest/Java
BOJ_2714 : ๋ฌธ์๋ฅผ ๋ฐ์ ์นํ์ด
Soom_1n
2022. 10. 10. 16:46
2714๋ฒ: ๋ฌธ์๋ฅผ ๋ฐ์ ์นํ์ด
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ T ≤ 1,000) ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ํ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , R, ๊ณต๋ฐฑ, C, ๊ณต๋ฐฑ, ์นํ์ด๊ฐ ๋ฐ์ ๋ฉ์์ง๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. (1 ≤ R, C ≤ 21) ๋ฉ์์ง๋ 0๊ณผ
www.acmicpc.net
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ ๋ ฅ๋ฐ์ ํ๋ ฌ ํฌ๊ธฐ๋๋ก ์ด์ง์ ๋ฉ์์ง๋ฅผ ๋์ดํ๋ค.
- ๋ฌํฝ์ด ํํ๋ก ์ฝ์ด๊ฐ๋ฉฐ ์ซ์๋ก ๋ณํํ๋ค.
- ์ซ์์ ๋งค์น๋๋ ๋ฌธ์๋ก ๋ณํ ํ ์ถ๋ ฅํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine());
for (int i = 0; i < t; i++){
String answer = "";
StringTokenizer st = new StringTokenizer(br.readLine());
int r = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
String msg = st.nextToken();
String arr[] = new String[r];
for (int j = 0; j < r; j++) {
arr[j] = msg.substring(c * j, c * j + c);
}
int len = r*c/5;
String matrix[] = new String[len];
for (int j = 0; j < len; j++)
matrix[j] = "";
int x=0, y=0, flag = 1, count = 0, idx = 0, mc = c, mr = r;
while (idx < len){
for (int cc = 0; cc < mc; cc++){
matrix[idx] += arr[x].charAt(y);
y += flag;
if (++count == 5){
idx++;
count = 0;
if (idx >= len) break;
}
}
if (idx >= len) break;
y += flag*-1;
x += flag;
mc--;
for (int rr = 0; rr < mr-1; rr++){
matrix[idx] += arr[x].charAt(y);
x += flag;
if (++count == 5){
idx++;
count = 0;
if (idx >= len) break;
}
}
mr--;
x += flag*-1;
flag *= -1;
y += flag;
}
for (int j = 0; j < len; j++) {
int temp = 0;
int num = 0;
for (int k = 4; k >= 0; k--){
temp += (matrix[j].charAt(k) - '0') * Math.pow(2, num++);
}
if (temp == 0) answer += " ";
else answer += (char) ('A' + temp - 1);
}
System.out.println(answer.stripTrailing());
}
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ ๋ ฅ๋ฐ์ ๋ฉ์์ง๋ฅผ ํ๋ ฌ ํฌ๊ธฐ๋ก ์ ์ธํ String๋ฐฐ์ด arr์ ๋๋์ด ์ ์ฅํ๋ค.
- String๋ฐฐ์ด matrix๋ ๋ฌํฝ์ด ํํ๋ก arr๋ฅผ ์ํํ๋ฉฐ 5๊ธ์์ฉ ์๋ผ ๋ฃ๋๋ค.
- matrix์ ์ ์ฅ๋ 2์ง์ ๋ฌธ์์ด์ 10์ง์๋ก ๋ฐ๊พธ์ด ๋ฌธ์๋ก ๋ณํ ํ ์ถ๋ ฅํ๋ค.
- ์ถ๋ ฅํ ๋ ๋ค์ ๋ถ๋ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ๋ค.
๐ธ end ๐ธ
- ๋ฌธ์ ๋ฅผ ์ฒ์์ ์ ์ดํดํ์ง ๋ชปํ๊ณ ์ ๋ ฅ๋ฐ์ ๋ฉ์์ง๋ฅผ 5๊ฐ๋ก๋ง ๋์ผ๋ฉด ๋๋ ์ค ์์๋ค๊ฐ ๋ฌํฝ์ด ํํ ์ํ๋ฅผ ๋ค๋ฆ๊ฒ ์ถ๊ฐํ๋ค.
- ํ๋ํ๋ ๊ตฌ๋ถํ๋ฉด ์ฝ๊ฒ ํ ์ ์๋๋ฐ ํ ๋ฒ ๊ผฌ์ด๋ฉด์ ์ถ๊ฐํ๊ณ ๋ ์ถ๊ฐํ๋๊น ๋ง์ด ์ด๋ ต๊ฒ ๋๊ปด์ง๊ณ ์ ํ๋ฆฌ์ง ์์๋ค.
- ๋ง์ง๋ง ๊ณต๋ฐฑ์ ์ ๊ฑฐํ์ง ์์ผ๋ฉด ์ถ๋ ฅํ์ ์ค๋ฅ๊ฐ ๋ํ๋๋ค.
728x90