본문 바로가기

전체 글45

[백준 2178] 미로 탐색 https://acmicpc.net/problem/2178 해설 이번 문제인 미로 찾기는 전에 소개한 백준 7562 나이트의 이동( 참고 : https://far-simple.tistory.com/10 ) 문제와 동일해서 설명은 생략하겠다. 다만, di 배열과 dj 배열을 잡을 때만 조심해주면 된다. 7562는 색칠 된 부분이 매우 많고 범위도 컸지만, 이번에는 아래 소스코드와 같이 위, 오른쪽, 아래, 왼쪽만 di, dj 배열로 잡아주면 끝난다. int di[4] = {-1,0,1,0}; int dj[4] = {0,1,0,-1}; ˙˙˙ 소스코드 #include #include int di[4] = {-1,0,1,0}; int dj[4] = {0,1,0,-1}; int arr[101][101]; boo.. 2020. 3. 21.
c++ ios::sync_with_stdio(false), cin.tie(NULL)은 무엇인가. 고수들의 C++ 소스코드를 보면 항상 다음과 같은 코드가 써져있다. ios::sync_with_stdio(false); cin.tie(NULL); 먼저, 첫번째 줄을 보자. ios::sync_with_stdio(false); c++을 할 때 c 표준 스트림과 c++ 표준 스트림은 동기화 되어있다고 한다. 그렇기에 우리는 cin도 쓸 수있고 scanf도 쓸 수있는 것이다. 하지만, 뭐든 많으면 느려지는 법. 고수들은 두 가지 동기화로 인한 시간 초과를 막기 위해 한가지를 끊고 cin, cout만 쓰기 위해 위와 같은 코드를 쓴다고 한다. 다음으로 두번째 줄을 보자. cin.tie(NULL); cin을 cout로부터 untie 한다고 한다. (stack overflow에 뭐라고 적혀있는 데 더 공부해봐야겠다.. 2020. 3. 20.
신기) 변수 초기화 후 초기화 한 변수로 for문 돌릴 시 기존 값 유지 다른 분들의 문제 해설 소스코드를 보다가 신기한 점이 있어서 가져와봤다. #include using namespace std; int main(){ int a=12345; for(int a=0; a 2020. 3. 20.
[백준 7562] 나이트의 이동 https://www.acmicpc.net/problem/7562 해설 일단, 그림만 봐도 BFS 라는 것을 짐작할 수있다. 색칠 된 부분의 좌표를 두 배열에 저장해놓고 BFS를 돌리면 풀 수있다. 현재 내 좌표를 0, 0으로 가정하고 나머지 색칠 된 부분의 좌표를 시계 방향으로 적어보겠다. int di[8] = {-2, -1, 1, 2, 2, 1, -1, -2}; int dj[8] = {1, 2, 2, 1, -1, -2, -2, -1}; 이 좌표를 가지고 현재 x와 y가 갈 수있는 좌표와 움직인 횟수를 큐에 넣어주고 업데이트 하면서 x와 y가 목적지에 도착하면 while을 빠져나와 count 한 값을 출력해주면 된다. ˙˙˙ 소스코드 #include #include using namespace std;.. 2020. 3. 20.