250x250
Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- deque
- date
- BFS
- html
- 스프링부트
- spring boot
- Java
- Properties
- dfs
- GC로그수집
- 큐
- CSS
- map
- string
- priority_queue
- Union-find
- set
- Calendar
- NIO
- math
- List
- 스택
- 리소스모니터링
- javascript
- alter
- 힙덤프
- JPA
- scanner
- sql
- union_find
Archives
- Today
- Total
매일 조금씩
백준 1919번: 애너그램 만들기 본문
728x90
반응형
처음엔 단순히 string으로 두 단어 입력받아서 for 문으로 알파벳 하나씩 겹치는지 확인하자. 라고 생각했지만
그런경우 연속된 같은 알파벳이 등장하거나 할때 문제가 발생한다.
따라서 두 단어에 들어가는 알파벳의 갯수를 각각 저장할 알파벳 배열 두개를 사용하여
마지막에 그 두 배열을 비교해서 숫자가 같지 않을 경우 두 수의 차를 count++; 시키는 방식으로 하였다.
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int word1[26], word2[26];
int main(void) {
ios_base::sync_with_stdio(0);
cin.tie(0);
string a, b;
cin >> a >> b;
for (int i = 0; i < a.length(); i++)
word1[a[i] - 'a']++;
for (int i = 0; i < b.length(); i++)
word2[b[i] - 'a']++;
int cnt = 0;
for (int i = 0; i < 26; i++) {
if (word1[i] != word2[i])
cnt += abs(word1[i] - word2[i]);
}
cout << cnt << endl;
return 0;
}
728x90
반응형
'알고리즘' 카테고리의 다른 글
백준 2897번: 몬스터 트럭 (0) | 2020.02.09 |
---|---|
백준 10769번: 행복한지 슬픈지 (0) | 2020.02.08 |
백준 2857번: FBI (0) | 2020.01.18 |
백준 10808번: 알바벳 개수 (0) | 2020.01.18 |
백준 5622번: 다이얼 (0) | 2020.01.18 |