본문 바로가기

전체 글

(233)
[C++] 백준 1260번 - DFS와 BFS 예전에 공부했지만 까먹은 DFS(깊이 우선 탐색)와 BFS(너비 우선 탐색) 문제를 풀어보려고 한다. DFS와 BFS는 그래프를 탐색하는 방법이다. 여기서 그래프는 정점과 그 정점을 연결하는 간선으로 이루어진 자료구조를 말한다. DFS는 최대한 깊이 내려간 뒤, 더 이상 깊이 갈 곳이 없을 경우 옆으로 이동한다. BFS는 최대한 넓게 이동한 다음, 더 이상 갈 수 없을 때 아래로 이동한다. 문제 1260번 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다...
[C++] 백준 1300번 - K번째 수 지금까지 정렬 문제를 풀어봤는데 오늘부터 이분 탐색 문제를 풀어보려고 한다. 문제 1300번 https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net 처음에는 벡터를 이용하여 풀어볼까 했는데 뭔가 어려운 느낌이 들어서 찾아보니 이런 식으로 푼 분도 있었다. #include #include #include using namespace std; int main() { int n,k; cin >> n >> k; int start..
[JS] 백준 3009번 - 네 번째 점 너무 졸려서 자버렸다... 얼른 해야지... 오늘은 자바스크립트를 할 것이다. 문제 3009번 https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 문제를 보니 3점의 각 x,y에서 2개가 같으면 나머지 1개의 점이 네 번째 점의 좌표가 될 것이다. 그러므로 정렬을 해준 후 비교해 첫 번째와 두 번째가 같으면 마지막 숫자를 아니면 첫 번째 숫자를 출력해주면 된다. const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt' const inp..
[C++] 백준 1337번 - 올바른 배열 으... 너무 졸리다... 아직 시차적응이 안된건가...?? (아니면 그냥 피곤한걸수도) 얼른 끝내버리자~~~ 문제 1337번 https://www.acmicpc.net/problem/1337 1337번: 올바른 배열 첫째 줄에 배열의 크기 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 배열의 원소가 한 줄에 하나씩 주어진다. 원소는 1,000,000,000보다 작거나 같은 음이 아닌 정수이 www.acmicpc.net 처음에 문제를 읽고 그냥 없는 숫자를 추가하면 되는거 아닌가 하다가 이해를 잘못해서 이상하게 코드를 작성하였다. 그래서 다른 분의 풀이를 참고했다. #include #include #include using namespace std; int main() ..
[C++] 백준 2470번 - 두 용액 ... 드디어 돌아왔다. 약 2주전... 난 해외여행을 갔다 왔다. 우리나라와는 멀리 떨어진 나라여서 그런지 엄청 피곤하다... 너무 졸려서 눈이 저절로 감겼다. 역시... 여행도 체력이 필요한 것 같다. 그렇게 집으로 돌아와서 충전을 하다가... 뭔가 잊어버린 느낌이 들기 시작했다. 그렇다!!! 나에게는 해외에 가기 전, 하고 있던 스터디가 있었던 것이었다. 약 14시간 동안 비행기를 타고 돌아오니 그 사실을 까맣게 잊어버렸다... 그래서 스터디 인증 올리는 곳에 들어가 보니 나를 환영해 주는 글까지 있었다(감동). 얼른 써야지! 오늘 다시 복귀할 것이다 ㅎㅎ. 이제 다시 C++ 공부하다가 다음 공부로 넘어가야겠다. 그럼 스타트~~~ 문제 2470번 https://www.acmicpc.net/probl..
[JS] 백준 기하 - 1085번 문제 1085번 https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 처음에는 무슨 소리인가 했는데 이런 뜻이였다. 이런 식으로 있는데 (x,y)에서 직사각형의 경계선싸지 가는 거리의 최솟값을 구하는 것이다. 그런데 최소거리는 (x,y)에서 직사각형의 각변에 수직으로 내렸을 때의 거리 중에 있다. 그래서 x,y,w-x,h-y 중에 가장 최소인 것을 고르면 될 것 같다. const readFileSyncAdress = process..
[JS] 백준 기하 - 27323번 오늘부터 '기하: 직사각형과 삼각형' 단계 차례이다. 내일 집으로 돌아가니까 오늘까지 핫스팟으로 얼른 해결해야겠다. 문제 27323번 https://www.acmicpc.net/problem/27323 27323번: 직사각형 정수 A, B 가 주어진다. 세로 길이가 A cm, 가로 길이가 B cm 인 아래와 같은 직사각형의 넓이를 cm2 단위로 구하시오. www.acmicpc.net 입력값을 A,B로 입력을 받고 A*B를 출력해주면 되는 간단한 문제이다. const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt' const [A,B] = require("fs").readFileSync(readFileSyncAdr..
[JS] 백준 약수, 배수와 소수 - 11653번 오늘은 이번 단계의 마지막 문제이다. 시골에 와서 와이파이가 없다...(즉... 핫스팟을 틀고 빠르게 문제를 풀어야한다.) 문제 11653번 https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 이 문제는 2부터 시작하여 입력받은 수까지 반복문을 돌린다. 만약 입력받은 수가 1이면 소인수분해를 할 수 없기 때문에 반복문을 빠져나와준다. 그리고 입력받은 수에서 2부터 입력받은 수까지 나눠줬을 때 나머지가 0이 되는 숫자를 배열에 넣어준다. 여기서 2가 2번이 나눠진다면 그만큼을 더 while문을 통해 나눠준다. 마지막으로 foreach를 이용하여 소인수를 넣어준 배열을 ..