인프런 커뮤니티 질문&답변

어하님의 프로필 이미지
어하

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

16. Anagram (구글 인터뷰 문제)

4번만 통과가 안되는데, 많이 고민해봤으나 잘모르겠네요..!

작성

·

219

0

#include <stdio.h>

int main() {

//f9는 컴파일, f10은 실행.

//채점받을때는 freopen주석처리하고 하기. 

//freopen("input.txt", "rt", stdin);

char first_str[105], sec_str[105];

int len_first_str=0, len_sec_str=0;

int flag_res=1;

scanf("%s", &first_str);

//printf("%s\n", first_str);

scanf("%s", &sec_str);

//각 길이 구하기 

for(int i=0; first_str[i] != '\0'; i++) {

len_first_str++;

}

for(int i=0; sec_str[i] != '\0'; i++) {

len_sec_str++;

}

//printf("len_first_str : %d\n", len_first_str);

//길이가 다르면 NO 

if(len_first_str != len_sec_str) {

printf("NO");

return 0;

}

else { //길이가 같으면 비교해보기, 각 char이 같다면, first_str의 각자리를 0으로 치환 

for(int i=0; i<len_first_str; i++) {

for(int j=0; j<len_first_str; j++) {

if(first_str[i] == sec_str[j]) {

first_str[i] = 0;

break;

}

}

//printf("first_str is : %s\n", first_str);

}

// 모두 0이라면 YES, 아니면 NO 

for(int i=0; i<len_first_str; i++) {

if(first_str[i] != 0) {

flag_res = 0;

break;

}

}

if(flag_res == 1) {

printf("YES");

}

else if(flag_res == 0) {

printf("NO");

}

}

return 0;

}

답변 2

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

이방법으로는 

aaa

abb

도 아나그램으로 판별합니다. 디버그해보세요.

0

어하님의 프로필 이미지
어하
질문자

감사합니다. 코드를짜면서 오해를 했네요..!

어하님의 프로필 이미지
어하

작성한 질문수

질문하기