https://softeer.ai/practice/result.do?eventIdx=1&psProblemId=624&submissionSn=SW_PRBL_SBMS_178457#hold
softeer.ai
1. ๋ฌธ์
8์ ๋ชจ์์ 7๊ฐ์ ์ ๊ตฌ๊ฐ ์๋ค. ์ง๊ธ ์ด ์ ๊ดํ์ ์์ฐ์ A๊ฐ ํ์๋์ด ์๋๋ฐ, ์์ฐ์ B๋ก ๋ฐ๊ฟ์ผ ํ๋ค.
์ ๊ตฌ๊ฐ ์ผ์ ธ์์ผ๋ฉด ๋๊ณ , ๊บผ์ ธ์์ผ๋ฉด ์ผ์ผํ๋ฉฐ ์ ๊ตฌ๋ง๋ค ์ค์์น๊ฐ ๋ฌ๋ ค์๋ค.
ํ๋์ฐจ๊ทธ๋ฃน์ ๋ค๋๋ ๋น์ ์ ์ค์์น๋ฅผ ์ต์ ๋ช ๋ฒ ๋๋ฌ์ผ ํ๋์ง๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
2. ํ์ด
์๋ฎฌ๋ ์ด์ ๋ฌธ์ ์ด๋ค.
- 3๊ฐ์ง ๊ฒฝ์ฐ๋ก ๋๋ ์ ๊ตฌํ๋ค.
- num[][] ๋ฐฐ์ด์ ๋ง๋ค์ด ๊ฐ ์ซ์๋ง๋ค(0~9), ์ ๊ตฌ๋ง๋ค(0~6) ์ผ์ง1,๊บผ์ง0์ ์ ์ฅํ๋ค.
์์ฐ์ A -> ์์ฐ์ B
1. A๊ธธ์ด < B๊ธธ์ด
- 0~(A๊ธธ์ด-1) ๋งํผ ์๋ฆฌ๋ณ ๋น๊ต
- A~(B๊ธธ์ด-1) ๋งํผ B๋ง ์๋ฆฌ๋ณ ๋ถํค๋ ํ์
2. A๊ธธ์ด == B๊ธธ์ด
- 0~(A๊ธธ์ด-1) ๋งํผ ์๋ฆฌ๋ณ ๋น๊ต
3. A๊ธธ์ด > B๊ธธ์ด
- 0~(B๊ธธ์ด-1) ๋งํผ ์๋ฆฌ๋ณ ๋น๊ต
- A~(A๊ธธ์ด-1) ๋งํผ A๋ง ์๋ฆฌ๋ณ ๋ถํค๋ ํ์
2์๊ฐ 20๋ถ ๊ฑธ๋ ธ๋ค.
์ด๋ ๊ฒ ์ค๋ ๊ฑธ๋ฆฐ ์ด์ ๋
num[][] ์ ๊ฐ์ ์ ์ฅํ ๋ ์ซ์9์ ์ํ๋ฅผ ์๋ชป ์ ์ฅํ๊ธฐ ๋๋ฌธ์ด๋ค. (^^)
์์ ์ ํ๋ฆฐ 9
0 1 2 3 4 5 6
{1,1,1,1,0,1,1} (9์ ์ํ๋ง ํ๋ ธ๋๋ฐ 10์ ์ด ๋์๋ค.)
์์ ํ ๋ง์ 9
0 1 2 3 4 5 6
{1,1,1,0,1,1,1}
3. ์ฝ๋
import java.util.*;
import java.io.*;
public class Main
{
static int T;
static char[] A, B;
static int[][] num = {
//0 1 2 3 4 5 6
{1,1,1,1,1,1,0}, //0
{0,1,1,0,0,0,0}, //1
{1,1,0,1,1,0,1}, //2
{1,1,1,1,0,0,1}, //3
{0,1,1,0,0,1,1}, //4
{1,0,1,1,0,1,1}, //5
{1,0,1,1,1,1,1}, //6
{1,1,1,0,0,1,0}, //7
{1,1,1,1,1,1,1}, //8
{1,1,1,1,0,1,1} //9
};
public static void main(String args[]) throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
T = Integer.parseInt(br.readLine());
for (int t = 0; t<T; t++) {
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
sb.append(st.nextToken());
String strA = sb.reverse().toString();
sb = new StringBuilder();
sb.append(st.nextToken());
String strB = sb.reverse().toString();
A = strA.toCharArray();
B = strB.toCharArray();
int lenA = strA.length();
int lenB = strB.length();
int ans = 0;
if (lenA < lenB) {
for (int i=0; i<lenA; i++) {
int nowA = A[i]-'0';
int nowB = B[i]-'0';
ans += change(nowA, nowB);
}
for (int i=lenA; i<lenB; i++) {
int nowB = B[i]-'0';
for (int j=0; j<7; j++) {
if (num[nowB][j] == 1) ans++;
}
}
}
else if (lenA == lenB) {
for (int i=0; i<lenA; i++) {
int nowA = A[i]-'0';
int nowB = B[i]-'0';
ans += change(nowA, nowB);
}
}
else if (lenA > lenB) {
for (int i=0; i<lenB; i++) {
int nowA = A[i]-'0';
int nowB = B[i]-'0';
ans += change(nowA, nowB);
}
for (int i=lenB; i<lenA; i++) {
int nowA = A[i]-'0';
for (int j=0; j<7; j++) {
if (num[nowA][j] == 1) ans++;
}
}
}
System.out.println(ans);
}
}
static int change(int nowA, int nowB) {
int cnt = 0;
for (int i=0; i<7; i++) {
if (num[nowB][i] == 0) {
if (num[nowA][i] == 1) {
cnt++;
}
}
else if (num[nowB][i] == 1) {
if (num[nowA][i] == 0) {
cnt++;
}
}
}
return cnt;
}
}
4. ์ฌ๋ด
์กฐ๊ธ๋ง ๋ ํด๋ณด์ ๊ฐ์ ์ฐพ์ ๋๊น์ง ์์์ข
'Algorithm > Softeer' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Softeer] ์ฑ์ ํ๊ท - Java (0) | 2023.05.06 |
---|---|
[Softeer] ์ฑ์ ํ๊ฐ - Java (2) | 2023.05.04 |
[Softeer] ๊ฐ์์ค ๋ฐฐ์ - Java (0) | 2023.04.29 |
[Softeer] GBC - Java (0) | 2023.04.29 |
[Softeer] [21๋ ์ฌ์ง์ ๋ํ ์์ ] ํ์์ค ์์ฝ - Java (0) | 2023.04.25 |