전체 글(230)
-
그대, 그머가 되어 - 14496
문제https://www.acmicpc.net/problem/14496느낀점한 번 변환할 때마다 변환 횟수를 기록해주어야하는데 그 과정을 bfs로 구현했다. 처음에는 생각해내는 것이 어려웠는데, bfs 문제를 풀다보면 비슷한 패턴으로 풀 수 있다. 관련 문제를 많이 접해보자!풀이#include #include #include #include #include int main(){ int a, b; std::cin >> a >> b; int N, M; std::cin >> N >> M; std::map> change; std::queue> stack; std::vector count(N + 1, 0); std::vector visited(N + 1, false); ..
2025.02.12 -
A->B - 16953
문제https://www.acmicpc.net/problem/16953느낀점하나의 루트로 갈 때 최단거리와 같은 비용을 계산할 때, bfs를 많이 사용하는데, 가짓수를 셀 때도 이러한 방식으로 접근하면 유용하다는 것을 배웠다.풀이#include #include #define pii std::pairint main(){ long A, B; std::cin >> A >> B; std::queue queue; queue.push(std::make_pair(A, 0)); while (!queue.empty()) { pii temp = queue.front(); queue.pop(); if (temp.first == B) { ..
2025.02.12 -
팰린드롬 만들기 - 1254
문제https://www.acmicpc.net/problem/1254느낀점왜 이렇게 애를 많이 먹었는지 모르겠다. 팰린드롬의 성질에 대해서 잘 파악했다면 그렇게 헤매지 않았을 것 같은데.. 문제를 잘 읽자풀이#include #include bool isP(std::string s){ std::cout > s; int start = 0, end = s.size() - 1; int length = s.size(); while (start
2025.02.12 -
비슷한 단어 - 2607
문제https://www.acmicpc.net/problem/2607느낀점상당히 애를 많이 먹었다.. 처음에는 set으로 비교하고 아닌 경우를 iterator로 찾으려고 했으나 그 경우, 문자의 순서가 달라질 수 있는 문제가 있어 다른 방법을 찾았다. 알파벳이 몇 개 있는지 판단하는 방법으로 풀었는데, 문제를 천천히 제대로 읽으면 방법을 유추할 수 있었다. 따라서, 구현 문제에서는 문제를 꼼꼼하게 잘 읽자!풀이#include #include #include std::vector calcIndex(std::string s){ std::vector result(26, 0); for (size_t i = 0; i > N; std::string reference; std::cin >> re..
2025.02.12 -
오리 - 12933
문제https://www.acmicpc.net/problem/12933느낀점상당히 재밌다고 생각했다. 들어오는 문자와 바로 앞에 있는 문자를 비교해서 원래 문자에 넣을 지 새로운 문자를 생성할 지 판단해주고 아닌 경우에 실패했다고 출력하면 되었다.풀이#include #include #include int judge(std::vector &cnt, char c){ for (size_t i = 0; i > reference; std::vector cnt; std::string s = ""; for (size_t i = 0; i
2025.02.12 -
앵무새 - 14713
문제https://www.acmicpc.net/problem/14713느낀점사실 구현 자체는 쉽다고 생각했다. 순서대로 왼쪽에서 하나씩 빼면서 비교하는 것이었는데, 자꾸 틀리는 것이었다. 문제를 잘 살펴보니 단어들의 갯수가 맞아야한다는 것을 깨달았고, 그 조건을 추가하니 통과했다.. 문제를 잘 읽자는 교훈을 얻음풀이#include #include #include #include using namespace std;bool judge(int N, map> &speech, string word){ for (int i = 0; i makeSplitString(queue &sQueue, string s){ string sStack = ""; for (size_t j = 0; j > N; ..
2025.02.12