본문 바로가기

Algorithm

(68)
[2869] 달팽이는 올라가고 싶다 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 문제 풀이 코드 /* * 백준 - 단계별 문제풀이 : 기본수학1 * 2869번 * * 달팽이는 올라가고 싶다. * 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. * 달팽이는 낮에 A미터 올라갈 수 있다. * 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. * 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. * */ #include #i..
[1193] 분수찾기 https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 문제 문제를 잘 못 읽었다 ! 지그제그 인 줄.... 풀이 코드 /* * 백준 - 단계별 문제풀이 : 기본수학1 * 1193번 * * 분수찾기 * 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 * 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. * X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. * */ #include using namespace std; void solution(int x) { int m; int n = 1; int..
[2292] 벌집 https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 문제 풀이방법 코드 /* * 백준 - 단계별 문제풀이 : 기본수학1 * 2292번 * * 벌집 * 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. * 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. * 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 * 갈 때 몇 개의 방을 지나가는지(시작과 끝을..
[15552] 빠른 A+B - ios_base::sync_with_stdio(false)와 cin.tie(null) https://www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 문제 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getcha..
[2741]N 찍기 - "\n" vs endl https://www.acmicpc.net/problem/2741 2741번: N 찍기 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net /* * 백준 - 단계별 문제풀이 : for문 * 2741번 * * N 찍기 * 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. * */ #include using namespace std; int main() { int n; cin >> n; for (int i = 1; i
[14681] 사분면고르기 (nested if VS && ) https://www.acmicpc.net/problem/14681 14681번: 사분면 고르기 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다. www.acmicpc.net 사분면 고르기는 다음과 같이 코드를 짤 수 있다. 1) Nested if /* * 백준 - 단계별 문제풀이 : if문 * 14681번 * * 사분면 고르 * 점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. * 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다. * */ #include int solution(int x, int y) { if (x > 0) { // 1,4 if (y > 0) return 1; else return 4; } else { if (y > 0)..
[정렬] K번째 수 #include #include #include using namespace std; vector solution(vector array, vector commands) { vector answer; vector temp; int length = commands.size(); for(int i=0; i
[10818] 최소, 최대 백준 10818번) 최대 최소 1차원 배열 문제 문제 거의 비슷했지만, for문을 이용하는 것이 더 빨랐다.. 근데 4ms정도.. for문을 이용 #include #include #include using namespace std; void Find_MinMax(int num, vector arr) { int min = arr[0]; int max = arr[0]; if (num == 1) printf("%d %d", min, max); else { for (int i = 1; i max) max = arr[i]; } printf("%d %d", min, max); } } int main() { in..

728x90