군대에서_코딩하기_알고리즘_8

신태원·2021년 5월 14일
0

군대에서_코딩하기

목록 보기
9/30
post-thumbnail

사실 오늘 두번째 문젠데, 아나그램?(Anagram) 이라는 것이다. Anagram이란 두 문자열이 알파벳의 나열 순서는 다르지만, 그 구성이 일치하면 두 단어를 아나그램이라고 한다.

사실 이 문제는 엄청 간단하고 쉽게? 풀었다. 지금까지 아스키코드를 이용한 배열 문제를 많이,,그것도 엄청 많이 풀었기 때문에, 배열 4개로( char형 2개, int형 2개 )로 간단하게 풀었다.

코드는 다음과 같다.

#include<iostream>

using namespace std;

int main(){
    
    char word_1[101], word_2[101];
    int check_1[53]={0,}, check_2[53]={0,};
    
    cin>>word_1;
    cin>>word_2;
    
    
    for(int i =0; word_1[i]!='\0'; i++){
        if(word_1[i]>64&&word_1[i]<91){
            check_1[word_1[i]-65]++;
        }
        else{
            check_1[word_1[i]-97]++;
        }
    }
    
    for(int i =0; word_2[i]!='\0'; i++){
        if(word_2[i]>64&&word_2[i]<91){
            check_2[word_2[i]-65]++;
        }
        else{
            check_2[word_2[i]-97]++;
        }
    }
    
    for(int i =0; i< 52;i++){
        if(check_1[i]==check_2[i]){
            continue;
        }
        else{
            cout<<"NO";
            exit();
        }
        
    }
    cout<<"YES";
    
   
}

생각보다 모범답안 코드랑 엄청 유사해서 깜짝놀랐다.. 저기 보이는 exit(0)까지 똑같다 ㅎㅎ뿌듯

profile
일단 배우는거만 정리해보자 차근차근,,

0개의 댓글