출처 => https://www.acmicpc.net/problem/1920 문제 문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다. 출력 M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다. 사고의 흐름 ▶ 선형탐색을 통해 쉽게 구현할 수 있지만 그렇게 하게 되면..
출처 => https://www.acmicpc.net/problem/2178 문제 N×M크기의 배열로 표현되는 미로가 있다. 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다. 위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다. 입력 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. ..
출처 => https://www.acmicpc.net/problem/2667 문제 사고의 흐름 ▶ 전형적인 깊이우선탐색 알고리즘을 이용한 문제이다. ▶ 크게 2가지의 포인트를 잡아야 한다. >> 첫 번째 포인트! 1이 발견되면 그 점을 중심으로 왼쪽 오른쪽 위 아래를 조사하는 것. ▶ 나의 풀이에서는 dx[]와 dy[] 배열을 이용하였다. 주위에 있는 x좌표와 y좌표를 nx와 ny로 설정하고 nx=x+dx[i] ny=y+dy[i]로 선언한다. i가 증가할 때마다 x와 y에 값을 더해준다. ▶ 여기서 중요한 것은 아래의 소스코드처럼 i번째의 숫자는 dx[i]와 dy[i]가 달라야 한다. 만약 0으로 같거나 1,-1로 둘이 같게 된다면 이동하지 않거나 대각선으로 이동하기 때문이다. dfs에서의 움직이는 방향..
visual studio를 사용하면 여러개의 cpp 파일이 만들어지면 중복이 된다. 예를들어 이런식으로 형성이 되면 #include이 파일이 생성된 수 만큼 정의가 되기 때문에 중복이 된다. 따라서 해결방법은 지금 사용하는 cpp파일 외에 나머지 파일은 주석처리를 해주면 해결이 된다!
문제 1 제시문 문제 1-1 Explanation => 문제에 대한 상황을 똑바로 이해했다면 풀 수 있는 문제이다 반성 => 뭐 딱히 반성할게 없다. 너무 쉬웠고 너무 잘 풀었다. 문제 1-2 Explanation => 삼각비의 가장 중요한 핵심 중 하나는 바로 "직각삼각형"이다. 문제에서 직각삼각형이 어디에 쓰일지를 고민하고 이를 이용하여 푸는 문제이다. 또한 θ0에 대한 식으로 나타내라고 하였다. 이는 a도 θ0를 이용해서 표현해야 한다는 것을 의미한다. 직각삼각형을 이용한다면 이것 역시 쉽게 구할 수 있을 것이다. 반성 => 나의 풀이를 보면 다 잘 풀었으나 마지막에 a를 θ0로 표현하지 않았다. 솔직히 말하면 내가 다시 푼다 하더라도 이 부분을 캐치하지는 못하였을 것 같다. 이런 유형도 있음을 외..
출처 => C++ How to Program (Detitel / Prenticehall) / 현재 그리고 미래지향적인 C++ 프로그래밍(장석우, 임정목 / 비앤씨에듀케이션)함수의 인자 전달 방식 ▶ 프로그래밍에서 함수를 사용할 때 변수, 즉 인자는 거의 필수 불가결하게 사용이 된다. 인자, 혹은 이 매개변수는 어떤 식으로 불러와서 사용이 되는걸까? 2가지의 방법이 있는데 값에 의한 호출과 주소에 의한 호출로 나뉘어진다. 값에 의한 호출로 객체 전달 ▶ 순서는 다음과 같다. 1. 함수를 호출하는 쪽에서 객체를 전달한다. 2. 함수의 매개 변수 객체 생성, 매개 변수 객체의 생성자는 호출되지 않는다.3. 함수 종료, 매개 변수 객체의 소멸자를 호출한다. ▶ 값에 의한 호출 시, 매개 변수 객체의 생성자는 실..