-
반응형
https://www.acmicpc.net/problem/6996
6996번: 애너그램
첫째 줄에 테스트 케이스의 개수(<100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 100을 넘지 않는 단어가 공백으로 구분되어서 주어진다. 단어는 알파벳 소문자로만 이루어
www.acmicpc.net
-풀이-
1. A와 B를 입력받는다.
2. A와 B의 길이가 다르면, 순서를 바꾼다해도 못만들기때문에 NOT을 출력해준다.
3. A와 B를 돌면서 A와 B에 각 알파벳들이 몇번씩 나오는지 따로따로 체크해준다.
4. A와 B를 구성하는 각각의 알파벳 개수가 모두 일치하면 TRUE, 아니면 FALSE에 해당하는 답을 출력해준다.
-코드-
#include <iostream> #include<algorithm> #include<string> using namespace std; string a, b; int n; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n; for (int i = 0; i < n; i++) { cin >> a >> b; if (a.size() != b.size()) { cout << a << " & " << b << " are NOT anagrams.\n"; } else { int cntA[26] = { 0 }; int cntB[26] = { 0 }; bool flag = true; int len = a.size(); for (int j = 0; j < len; j++) { cntA[a[j] - 'a']++; cntB[b[j] - 'a']++; } for (int j = 0; j < 26; j++) { if (cntA[j] != cntB[j]) { flag = false; break; } } if (flag) { cout << a << " & " << b << " are anagrams.\n"; } else { cout << a << " & " << b << " are NOT anagrams.\n"; } } } return 0; }
반응형'문제풀이 > 백준oj' 카테고리의 다른 글
[백준OJ] 4659번 비밀번호 발음하기 (0) 2021.07.23 [백준OJ] 5014번 스타트링크 (0) 2021.07.22 [백준OJ] 2637번 장난감 조립 (0) 2021.07.21 [백준OJ] 14921번 용액 합성하기 (0) 2021.07.21 [백준OJ] 10844번 쉬운 계단 수 (0) 2021.07.21 댓글