반응형
츄르사려고 코딩하는 코집사입니다.
1. [SW expert Academy] SWEA 7272번 안경이 없어! 자바(Java)
1) 난이도 : D3
2) 문제번호 : 7272번
3) 문제 출처
2. 문제
어느 날 경근이는 알파벳 대문자로 이루어진 두 문자열을 비교해야 했는데, 이 날은 공교롭게도 안경이 없었다.
경근이는 매우 눈이 나빠서 안경을 벗으면 문자열을 문자 단위로 구별할 수는 있지만, 두 문자가 정확히 같은 지는 알지 못한다.
특히 알파벳 대문자 같은 경우 문자에 나 있는 구멍의 개수가 같으면 같은 문자이고, 다르면 다른 문자라고 생각한다.
예를 들어 구멍이 하나도 없는 CEFGHIJKLMNSTUVWXYZ들을 같은 문자로 생각하고,
구멍이 한 개 나 있는 ADOPQR들을 같은 문자로 생각하며,
구멍이 두 개 나 있는 유일한 문자 B는 유일하게 정확히 알 수 있다.
알파벳 대문자로 이루어진 두 문자열이 주어졌을 때, 경근이는 두 문자열이 같다고 판별하는지 다르다고 판별할 것인가?
3. 제약사항
-
4. 입력
첫 번째 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 두 문자열이 공백 하나로 구별되어 주어진다.
각 문자열은 알파벳 대문자 만으로 이루어져 있으며, 길이는 10이하이다.
5. 출력
각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고,
경근이가 주어진 두 문자열을 같은 것으로 생각하면 “SAME”을, 다른 것으로 생각하면 “DIFF”를 출력한다.
6. 풀이
- 2개의 배열에 넣어 구멍에 따라 int형 배열에 넣어 배열 비교
7. 소스 코드
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt(); // 테스트 케이스의 개수
for(int tc=1;tc<=T;tc++) {
String a = sc.next();
String b = sc.next();
int[] arr = new int[a.length()];
int[] arr2 = new int[b.length()];
//B를 받으면 배열에 2, ADOPQR을 받으면 배열에 1, 나머지는 0 입력
for(int i=0;i<a.length();i++) {
String a_result = a.substring(i,i+1);
if(a_result.equals("B")) arr[i] = 2;
else if(a_result.equals("A")||a_result.equals("D")||a_result.equals("O")||a_result.equals("P")||a_result.equals("Q")||a_result.equals("R")) arr[i] = 1;
else arr[i] = 0;
}
//B를 받으면 배열에 2, ADOPQR을 받으면 배열에 1, 나머지는 0 입력
for(int i=0;i<b.length();i++) {
String b_result = b.substring(i,i+1);
if(b_result.equals("B")) arr2[i] = 2;
else if(b_result.equals("A")||b_result.equals("D")||b_result.equals("O")||b_result.equals("P")||b_result.equals("Q")||b_result.equals("R")) arr2[i] = 1;
else arr2[i] = 0;
}
//arr과 arr2가 같으면 SAME, 다르면 DIFF 출력
if(Arrays.equals(arr, arr2)) System.out.printf("#%d SAME\n",tc);
else System.out.printf("#%d DIFF\n",tc);
}
}
}
반응형
'알고리즘 > SW expert Academy' 카테고리의 다른 글
[SW expert Academy] SWEA 1984번 중간 평균값 구하기 자바(Java) (0) | 2021.02.17 |
---|---|
[SW expert Academy] SWEA 5215번 햄버거 다이어트 자바(Java) - 비트마스크 풀이 (0) | 2021.02.17 |
[SW expert Academy] SWEA 1493번 수의 새로운 연산 자바(Java) (0) | 2021.02.16 |
[SW expert Academy] SWEA 11457번 gravity 자바(Java) (0) | 2021.02.14 |
[SW expert Academy] SWEA 1234번 비밀번호 자바(Java) (0) | 2021.02.13 |
[SW expert Academy] SWEA 1983번 조교의 성적 매기기 자바(Java) (0) | 2021.02.11 |
[SW expert Academy] SWEA 1970번 쉬운 거스름돈 자바(Java) (0) | 2021.02.11 |
[SW expert Academy] SWEA 1926번 간단한 369게임 자바(Java) (2) | 2021.02.11 |
최근댓글