728x90
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
import java.util.HashMap;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 1.숫자들을 다 해시맵에 넣는다.
String[] numbers = { "0001101", "0011001", "0010011", "0111101", "0100011", "0110001", "0101111", "0111011",
"0110111", "0001011" };
HashMap<String, Integer> map = new HashMap<>();
for (int i = 0; i < numbers.length; i++) {
map.put(numbers[i], i);
}
int t = sc.nextInt();
for (int tc = 1; tc <= t; tc++) {
int n = sc.nextInt();
int m = sc.nextInt();
String info[] = new String[n];
for (int i = 0; i < n; i++) {
info[i] = sc.next();
}
int count = 8;
int odd = 0;
int even = 0;
// 2. String 배열로 값들 다 읽어옴
// 3. 1을 포함하고 있는 것이 있다면
// 8번만큼 while 뒤에서 돌면서 홀순지 짝순지 계산해서 더함
for (int i = 0; i < info.length; i++) {
if (info[i].contains("1")) {
int index = info[i].lastIndexOf("1");
while (count-- > 0) {
String num = info[i].substring(index - 6, index + 1);
//System.out.println(num);
//System.out.println(map.get(num));
if (count % 2 == 0) { //여기서 map의 num 값을 가져오는 게 아니라
// count 값이 짝수인지 홀수인지 판별해야한다.
odd += map.get(num); //8개를 뒤에서부터 보기 때문에 2로 나눠지면 홀수에 더해야함
} else {
even += map.get(num);
}
index -= 7;
}
}
}
// 4. 나온 값으로 판별함
int answer = odd + even;
//System.out.println(odd+" "+even);
if ((odd * 3 + even) % 10 != 0) {
answer = 0;
}
System.out.println("#" + tc + " " + answer);
}
}
}728x90
'SW Expert Academy > SWEA D3' 카테고리의 다른 글
| [SW Expert Academy] 세영이의 SEM력 연도 (D3) (0) | 2024.09.11 |
|---|---|
| [SW Expert Academy] 퍼펙트 셔플 (D3) (0) | 2024.09.11 |
| [SW Expert Academy] 규영이와 인영이의 카드게임 (D3) (0) | 2024.09.09 |
| [SW Expert Academy] 다솔이의 다이아몬드 장식 (D3) (1) | 2024.09.08 |
| [SW Expert Academy] 극장 좌석 (D3) (0) | 2024.09.08 |