-
[백준/BOJ] 1919번 애너그램 만들기 (C++)알고리즘 문제풀이/백준 2021. 9. 20. 19:45
https://www.acmicpc.net/problem/1919
처음에 map을 2개 정의해서 활용해서 풀이를 시도했는데, map의 값을 빼주는 과정에서 뭔가 내부적으로 동작되는 방식(?)에 의해 원하는대로 작동을 안하는 것 같았다. 그래서 배열 2개를 이용하여 a~z까지 서로 값이 다른 경우 값을 빼주는 방식으로 해결했다.
#include <iostream> #include <algorithm> using namespace std; int check1[26], check2[26]; int main(void) { ios_base::sync_with_stdio(false); cin.tie(0); string str1, str2; cin >> str1 >> str2; for(int i = 0; i < str1.size(); i++) { check1[str1[i] - 'a']++; } for(int i = 0; i < str2.size(); i++) { check2[str2[i] - 'a']++; } int answer = 0; for(int i = 0; i < 26; i++) { if(check1[i] != check2[i]) { answer += abs(check1[i] - check2[i]); } } cout << answer; }
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[백준/BOJ] 6581번 HTML (C++) (0) 2021.09.25 [백준/BOJ] 1325번 효율적인 해킹 (C++) (0) 2021.09.20 [백준/BOJ] 2980번 도로와 신호등 (C++) (0) 2021.09.19 [백준/BOJ] 3048번 개미 (C++) (0) 2021.09.18 [백준/BOJ] 10798번 세로 읽기 (C++) (0) 2021.09.14