분류 전체보기
BaekJoon 2210번: 숫자판 점프
https://www.acmicpc.net/problem/2210 2210번: 숫자판 점프 111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, 212121 이 가능한 경우들이다. www.acmicpc.net 풀이법 1) DFS를 활용하여 나올 수 있는 숫자의 합을 구하는 문제이다. 2) 겹치지 않게 visit 배열을 활용하여 겹치지 않게 처리하면 풀 수 있다. 3) 재귀와 stack을 활용할 수 있으나, stack으로 문제를 풀어보았다. #include #include #include #include #include #include #include #incl..
BaekJoon 10026번: 적록색약(C++)
https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 풀이법 1) BFS를 활용하여 몇 개의 덩어리가 존재하는지 묻는 문제이다. 2) visit 배열을 두어 한 번 방문한 곳은 다시 방문 안하는 것을 활용하면 더 쉽게 풀 수 있다. 3) 총 두번이 반복 되어야 하니 visit 배열은 초기화 시켜야 한다. 4) 두 번째에 적록 색약이신 분들을 위해 R과G 가 인접한 부분은 G->R로 바꾸는 방식으로 문제를 해결했다 (for문을 활용하는 것 보다..
BaekJoon 10451번: 순열 사이클(C++)
https://www.acmicpc.net/problem/10451 10451번: 순열 사이클 1부터 N까지 정수 N개로 이루어진 순열을 나타내는 방법은 여러 가지가 있다. 예를 들어, 8개의 수로 이루어진 순열 (3, 2, 7, 8, 1, 4, 5, 6)을 배열을 이용해 표현하면 \(\begin{pmatrix} 1 & 2 &3&4&5&6&7&8 \\ 3 www.acmicpc.net 풀이법 1) DFS를 활용하여 최소를 구하는 문제이다. 2) visit 배열을 두어 한 번 방문한 곳은 다시 방문 안하는 것을 활용하면 더 쉽게 풀 수 있다. 3) stack을 활용하여 dfs를 구현하였으며, 다음의 노드가 이미 방문되었다면 cycle이 있는 것이다. 4) cycle로 새로운 값을 넣을 때는 for문을 활용하..
BaekJoon 1389번: 케빈 베이컨의 6단계 법칙(C++)
https://www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net 풀이법 1) DFS를 활용하여 최소를 구하는 문제이다. 2) visit 배열을 두어 한 번 방문한 곳은 다시 방문 안하는 것을 활용하면 더 쉽게 풀 수 있다. 3) sort를 활용하여 비교를 진행하여 케빈 베이컨의 수가 가장 작은 사람을 출력 시에 가장 작은 값이 여러 명일 경우에는 번호가 가장 작은 사람을 출력하였다. 4) tmpt 배열을 통해 시..
BaekJoon 11724번: 연결 요소의 개수(C++)
https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 풀이법 1) DFS를 활용하면 쉽게 풀 수 있는 문제이다 2) visit 배열을 두어 한 번 방문한 곳은 다시 방문 안하는 것을 활용하면 더 쉽게 풀 수 있다. 3) 연결된 Node가 총 몇 덩이인지 파악하기 위해 cnt 변수를 두어 개수를 셀 수 있게 하였다. #include #include #include #include #incl..
정보처리기사 합격 후기(2021 정기 기사 1회)
2021년 정기 기사 1회 정보처리기사(실기)에 합격하여 정보처리기사를 취득했다. 난이도가 어려울 것을 대비하여, 달달 외우는 방식으로 공부를 진행하였는데, 생각보다 시험이 쉬워서 고득점을 할 수 있었던 것 같다. 시험 준비 기간은 약 3주 정도에 하루에 4시간 정도는 공부했던 것 같다. 학기 중에 중간고사와 병행해서 공부를 해야 했기에, 시험이 다가올 수록 공부 양은 많지 않았다. 공부를 할때 암기 위주의 공부를 거의 하지 않아 나에게는 꽤나 힘든 시험이었다. 암기를 잘 못하는 내가 결과적으로 좋은 점수를 받을 수 있었기에, 다른 분들께 조금이나마 도움이 되도록 내가 공부했던 방식이나 팁 정도를 남기고자 한다. ※ 책에 대해서는 어떠한 홍보도 받지 않았으며, 주관적 기준으로 작성한 리뷰입니다. 무조건 ..
LeetCode 1669번: Merge In Between Linked Lists(Python3)
https://leetcode.com/problems/merge-in-between-linked-lists/ Merge In Between Linked Lists - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 해당 문제는 위 링크를 클릭하면 볼 수 있다. 문제 설명 1) 사이즈가 n인 list1과 사이즈가 m인 list2가 주어진다. 2) list1의 a번째 node부터 list1의 b번째 node까지를 제거한다. 3) list1의 a-1번째 node 이후에..
BaekJoon 2644번: 촌수계산(C++/DFS/BFS)
https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어진 www.acmicpc.net 풀이법 1) BFS와 DFS를 이용하면 쉽게 풀 수 있는 문제이다. 2) visit 배열을 두어 한 번 방문한 곳은 다시 방문 안하는 것을 활용하면 더 쉽게 풀 수 있다. #include #include #include #include #include #include using namespace std; int n; int a, b; int m; int arr[101][101]; b..
BaekJoon 7562번: 나이트의 이동(C++)
https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 풀이법 1) BFS를 이용하여 최단 거리를 구하는 문제이다. 2) 여러 개의 test case가 있다는 점을 유의한다면 쉽게 풀 수 있는 문제이다 3) 매 test case 마다 visited를 초기화 하는 것을 잊지 말자. 4) 나이트가 움직일 수 있는 총 8개의 패턴을 배열로 만들어 둔다면 직관적인 코드를 짤 수 있다. #include #include #include #include #inclu..
BaekJoon: 7569번 토마토(C++)
https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 풀이법 1) BFS를 활용하여 최단거리를 찾는 문제이다. 2) x,y,z를 둘 때 값이 헷갈릴 수 있으니 이 부분을 조심해야 한다. 필자의 경우 아래와 같은 방식으로 x,y,z 값을 두었다. (0,0,0) (0,1,0) (0,2,0) (1,0,0) (1,1,0) (1,2,0) 3) tomato 배열 내에 0이 남아있는지 확인하는 별도의 함수를 활용하여 익지 못한 토마토를 찾..