본문 바로가기

전체 글

(202)
[JS] 백준 24265번 - 알고리즘의 수행 시간 4 문제 24265번 https://www.acmicpc.net/problem/24265 24265번: 알고리즘 수업 - 알고리즘의 수행 시간 4 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 이번 MenOfPassion은 이중 반복문을 사용하는데 for문이 각각 1 ~ n-1, i+1 ~ n 범위에서 수행한다. 음... 어떻게 수행 횟수를 구하지 하다가 다른 분의 설명을 보니까 확실하게 이해갔다. 만약 n을 7이라고 가정하자. 그러면 i는 1에서부터 6까지 반복하고, i를 수행할 때마다 j는 i+1부터 7까지 반복하게 되는 것..
[JS] 백준 - 알고리즘 수행 시간 3 문제 24264번 https://www.acmicpc.net/problem/24264 24264번: 알고리즘 수업 - 알고리즘의 수행 시간 3 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 이번 MenOfPassion은 이중 반복문이 있는 알고리즘이다. 그래서 수행 횟수는 입력받은 input의 제곱이고, for문이 2개이므로 최고차항의 차수는 2이다. const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt' const input =..
[JS] 백준 24263번 - 알고리즘의 수행 시간 2 문제 24263번 https://www.acmicpc.net/problem/24263 24263번: 알고리즘 수업 - 알고리즘의 수행 시간 2 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 이번 MenOfPassion은 i부터 n까지 반복하여 A 배열에 i인덱스를 넣었을 때 나오는 값을 sum에 계속 더해주는 알고리즘이다. 여기서 수행 횟수는 입력의 크기인 n이고, 최고차항의 차수는 for문이 1개이기 때문에 1이된다. const readFileSyncAdress = process.platform === 'linux' ? '..
[JS] 백준 24262번 - 알고리즘의 수행 시간 1 문제 24262번 https://www.acmicpc.net/problem/24262 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 시간 복잡도란 연산을 실행할 때 입력값의 변화에 따라 시간이 연산 횟수에 비해 얼마나 걸리는지, 즉 알고리즘의 성능을 설명해주는 것이다. 코드를 보니 MenOfPassion함수는 인덱스를 절반으로 만들어서 해당 인덱스을 넣은 배열을 반환하는 알고리즘이다. 입력값이 달라져도 반복되지는 않을 것이다. 반복문이 없으니 무조건 1번 실행되며 상수..
[JS] 백준 1193번 - 분수찾기 문제 1193번 https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 오늘 문제를 보니까 이해가 안 돼서 다른 분의 풀이를 보며 공부하였다. const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt' const input = require("fs").readFileSync(readFileSyncAdress).toString().trim(); let num=Number(input); let count=1; while(true){ num-=count; if(num
[JS] 백준 2869번 - 달팽이는 올라가고 싶다 문제 2869번 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 달팽이가 낮에 A미터 올라갈 수 있지만 밤에는 B미터 미끄러진다. 그리고 정상에 올라간 후에는 미끄러지지 않는다. 이때 높이가 V미터인 나무 막대를 모두 올라가려면 며칠이 걸리는지 구해야하는 문제이다. 식을 써보면, ( A - B ) * 며칠 + B = V A미터 올라가고 B미터 내려간 거리에 며칠이 걸렸는지 곱해주면 총 거리인 V가 나올거라고 생각할 수 있지만, 여기서 정상에 올라간 후에는 미끄러지지 않는다고 했으니 마지막에 정상에 올라..
[C++] 백준 1697번 - 숨바꼭질 으... 너무 졸리다... 문제 1697번 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net #include #include #include using namespace std; int n, k; bool visited[100001]; void bfs(int n) { queue q; q.push({ n,0 }); while (!q.empty()) { int x = q.front().first; int cnt = q.fr..
[C++] 백준 2178번 - 미로 탐색 문제 2178번 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 흑흑... 또 까먹었다... 이것도 예전에 풀었던 건데... 다시 그걸로 공부하고 작성해 보았다. #include #include #include using namespace std; int map[100][100]; int n, m, k; int dx[4] = {0,0,-1,1}; int dy[4] = {1,-1,0,0}; int bfs(int f, int s) { queue q; q.push({ f,s });..