https://www.acmicpc.net/problem/7562진짜 쓰는거 완전 까먹었었당..;;;확실히 10일전과 비교했을 때, 실력이 많이 는 것 같다.스터디 팀원이 알려준 문제풀이 꿀팁으로 문제를 더욱 차분히 풀 수 있게 된 것같다.진짜 너무 고맙다..ㅜ처음에 왕창 틀렸었다. ㅜㅜ 1. 문제 해석1. test case만큼 반복2. n * n 보드의 n값 입력3. 나이트 출발 위치4. 나이트 도착 위치즉, 나이트의 출발 -> 도착 까지 이동할 때의 최소 횟수를 구하는 문제 이런 최단 경로를 구하는 문제는 bfs 즉, 깊이 우선 탐색을 통해 구현하면 된다. 2. 문제 풀이주석문으로 대충 알고리즘 흐름을 써 두고해당 알고리즘을 하나씩 짜는 방식으로 구현했다. 이 방법이 진짜 제일 좋은 듯하다.#i..
2025.04.04 - [백준이당] - [C++] 백준 14503번 : 로봇청소기 청" data-og-host="2hiidevdang.tistory.com" data-og-source-url="https://2hiidevdang.tistory.com/131" data-og-url="https://2hiidevdang.tistory.com/131" data-og-image="https://scrap.kakaocdn.net/dn/cD2Nrd/hyYH5UyjLH/4feSdaQDvrVSgKxJ585UQk/img.png?width=800&height=135&face=0_0_800_135,https://scrap.kakaocdn.net/dn/VHDen/hyYG9Xt8un/D3V0O0VQkr4YgGbaQGqGf1/i..
https://www.acmicpc.net/problem/1325 그동안 삼성 개빡구현 문제를 훈련해서 그런지,, 실버문제는 그냥 풀려버린다. 익숙한 알고리즘이라 그런건가?뭔가 그래도 꽤 잘 풀린 느낌이었다.1. 문제 해석 // n개의 컴퓨터 // 한 번의 해킹 -> 여러 개의 컴퓨터를 해킹할 수 있는 컴퓨터 해킹 // a가 b신뢰 : b를 해킹카면 a도 해킹 가능 // 신뢰 관계 주어졌을 때, 가장 많은 컴퓨터 해킹할 수 잇는 컴퓨터 번호 출력 여기서 주의할 점은 신뢰 관계이다.이 관계가 일반적인 문제와는 반대로 되어있기 때문에 조건을 잘 파악하고 문제풀이에 들어가는 것이 중요하다. 2. 문제 풀이이런 그래프 문제들은 전역으로 필요한 변수들을 두는게 문제 풀이에 편하다.함수 인자로..
https://www.acmicpc.net/problem/24480전형적인 dfs 문제였다.1. 문제 조건 // n 개 정점 // m 개 간선 // 무방향 그래프 // 정점번호 1~n 번 // 모든 가중치는 1 // 정점 r 에서 시작해 dfs로 노드방문 -> 노드 방문문순서 출력 // 인접 정점은 내림차순으로 방문 2. 문제 풀이다만 조금 아쉬웠던 부분은 전역 변수로 방문 순서를 둔 것이다.어쨌든 답은 맞았으니 괜찮지만,나는 지역변수를 통해서 갱신하고 싶었다.해당 방법도 추후 더 공부해보자.#include using namespace std;vector visited_order(100001);vector> graph(100001);vector is_visited(1..
https://www.acmicpc.net/problem/2667완전 기본적인 bfs문제다.감다뒨줄 알았는데 다행이당..ㅎ1. 문제 분석간단히 문제 설명이다.70110100011010111101010000111010000001111100111000 1은 집이고 0은 집이 아니다.1끼리 묶여있는 곳이 '단지'다.단지의 개수를 출력하고, 단지에 있는 집이 몇 개인지 오름차순으로 출력하면 된다. 나는 여기서 오름차순 출력을 위해 우선순위 큐를 사용했다. priority_queue, greater> ansPQ; 주의할 점이라면,priority_queue는 반복자(iterator)를 지원하지 않는다는 점이다.priority_queue는 내부적으로 heap 자료구조를 사용하기 때문에begin(), end()..
이번 글은 알고리즘 문제를 풀 때, 사용하는 자료구조와 유용한 STL컨테이너를 목차식으로 정리한 글이다.obsidian에서 따로 정리하고 있기도 한데,좀 유용한 것 같아서 불특정 다수와 공유하고 싶다..(많이 안볼거같지만 그래두..) 1. 자주 쓰는 자료구조 & STL 컨테이너컨테이너설명vector가변 크기 배열, 끝 삽입 O(1), 중간 삽입/삭제 O(n)deque양쪽 끝 삽입/삭제 O(1), 슬라이딩 윈도우 등에 사용list이중 연결 리스트, 중간 삽입/삭제 O(1)stack후입선출 (LIFO), 내부적으로 deque 기반queue선입선출 (FIFO), BFS 등에서 사용priority_queue우선순위 큐 (기본: 최대 힙), 삽입/삭제 O(log n), 조회 O(1)set정렬된 중복 없는 집합,..
https://www.acmicpc.net/problem/14503구현 문제다. 조건이 엄청 많은건 아니었지만, 그래도 조건 정리 제대로 안하면 뱅글뱅글 돌아갈수있는 문제다 풀이 과정1~N- 문제 정의로봇 청소기, 방의 상태 -> 청소하는 영역의 개수 구하는 프로그램방 : n*m0 : 위 - 북 (-1,0)1 : 우 - 동 (0,1)2 : 하 - 남 (1,0)3 : 좌 - 서 (0,-1)(r,c)00 01 0210 11 1220 21 221. 현재 칸이 아직 청소되지 않은 경우, 현재 칸을 청소한다. : ans++2. 현재 칸의 주변 $4$칸 중 청소되지 않은 빈 칸이 없는 경우, : 모두다isVisited == true 인 경우 | 하나라도 false가 아니면 1. 바라보는 방향을 유지한 채로 ..
2025.03.29 - [백준이당] - [C++] 백준 18111번 : 마인크래프트 [C++] 백준 18111번 : 마인크래프트https://www.acmicpc.net/problem/18111하... 이 문제도 한 달 전에 푼 문제지만 다시 푸니까 또 틀렸다.기억이 나는 문제인게, 처음 푼 당시에는 아이디어가 떠오르지 않아 답지를 봤었다..ㅜ뭐 이번엔 아이2hiidevdang.tistory.com 2025.03.30 - [백준이당] - [C++] 백준 1515번 : 수 이어쓰기 [C++] 백준 1515번 : 수 이어쓰기https://www.acmicpc.net/problem/1515 문제를 잘 읽자 ㅎㅋㅎㅋ 처음 틀린건 문제 내에서첫째 줄에 지우고 남은 수를 한 줄로 이어 붙인 수가 주어진다. 이 수..
https://www.acmicpc.net/problem/2615 오목..이 문제 XY Problem에 갇혔었다. 다른 방식으로 해결할 수 있었지만, 지금 내 방식으로 너무너무 해결해보고 싶어서 오래걸렸다....1. 문제 분석오목19 * 19 바둑판- 연속 다섯알 -> 승리- 연속 : 가로, 세로, 대각선 모두 뜻함- 6목은 인정 안 함입력검정 : 1, 흰 : 2, 없음 : 0출력이긴돌이긴 라인의 가장 왼쪽에 있는 바둑돌 (연속된 다섯 개가 세로인 경우 : 가장 위에 있는 거) -> 가장 좌측 상단에 있는 바둑돌을 출력---1. 먼저 바둑판을 순회 (좌 -> 우 && 상 -> 하 방향)2. 만약 1 또는 2를 만나? (현재 바둑돌이 무엇인지 저장햐야 함. : currRock) 2.1. 현재의 위치..
https://www.acmicpc.net/problem/5430 이 문제도 과거 여러번 틀려 골머리를 앓았던 문제다심지어 java로 풀었었었었다...ㄷㄷㄷㄷㄷ 다행이도 이번엔 한방에 맞았다그래도 1년동안 성장은 했나보다 ㅎㅎㅎ 문제를 다시 접하니 그냥 적절한 자료구조를 가지고 조금만 조물딱하면 되는 문제였기 때문에,풀이과정도 딱히 쓸 것이 없었다. 따라서 그냥 정답 코드만 쓸거다. 아, 주의할 점이 cpp의 경우 문자열 다루는 게 조금 귀찮다.이번 기회에 또 여러 레퍼런스를 찾아보며 공부할 수 있어서 매우 좋았다.뭐.. 공부란게 안하면 자꾸 까먹어서, 암튼 이렇게라도 다시 접할 수 있다는게 좋았다 #include using namespace std;deque split(string str, char ..