반응형
DoZZang
Do IT
DoZZang
전체 방문자
오늘
어제
  • Programming
    • Git
    • Web
    • 기타
    • Python
      • CodeUp
    • Math
    • Algorithm
    • Baekjoon
    • C,C++
    • Life
      • 독서
      • Just
      • 영화

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
DoZZang

Do IT

[C++] 1919번 : 애너그램 만들기
Baekjoon

[C++] 1919번 : 애너그램 만들기

2024. 2. 23. 15:01
반응형

https://www.acmicpc.net/problem/1919

 

1919번: 애너그램 만들기

두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs

www.acmicpc.net

풀이

11328번 Strfry 문제와 상당히 유사한 문제이다.

이 때 배열을 굳이 2개나 사용하지 않아도 1개로 해결할 수 있는 모범 풀이가 존재해

이번 문제도 한 가지 배열로 풀어봐야겠다고 다짐했으나..

시간을 투자하여도 내 풀이에는 반례가 존재했다.

모범 답안을 보면 1개의 배열로 풀 수는 있으나 2차원 배열이기 때문에 1차원 배열 2개를 사용하는 것과 같다.

 

내 코드

#include <bits/stdc++.h>
using namespace std;


int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int N, l, al[26] = {}, al2[26] = {},sum = 0;
	string a, b;
	cin >> a >> b;
	for (auto i : a) al[i - 'a']++;
	for (auto i : b) al2[i - 'a']++;
	for (int i = 0; i < 26; i++)
		sum += abs(al[i] - al2[i]);
		
	cout << sum;
}

 

모범 답안

 

// Authored by : twinkite
// Co-authored by : BaaaaaaaaaaarkingDog
// http://boj.kr/ae5d8d2f69f04530b4df0c591e9b07d5
#include <bits/stdc++.h>
using namespace std;

int arr[2][26], res;
string s1, s2;

int main(void){
  ios::sync_with_stdio(0);
  cin.tie(0);
 
  cin>>s1>>s2;
  for(char c : s1)
    arr[0][c-'a']++;
  
  for(char c : s2)
    arr[1][c-'a']++;
  
  for(int i=0; i<26; i++)
    res += abs(arr[0][i]-arr[1][i]);
  
  cout << res;
}
반응형
저작자표시 (새창열림)

'Baekjoon' 카테고리의 다른 글

[C++] 10773번 : 제로  (0) 2024.03.03
[C++] 1406번 : 에디터  (1) 2024.02.27
[C++] 백준 3273번 : 두 수의 합  (0) 2024.02.22
[C++] 1475번 : 방 번호  (0) 2024.02.22
[C++] 2577번: 숫자의 개수  (0) 2024.02.21
    'Baekjoon' 카테고리의 다른 글
    • [C++] 10773번 : 제로
    • [C++] 1406번 : 에디터
    • [C++] 백준 3273번 : 두 수의 합
    • [C++] 1475번 : 방 번호
    DoZZang
    DoZZang
    과정은 힘들지만 성장은 즐겁습니다.

    티스토리툴바