Category: computer science

0

백준[1074] - Z

문제백준 1074 문제 보기 접근 방법일일이 (0,0)부터 좌표를 찍는 순으로 접근하면 시간 초과를 유발한다. 따라서 좌표가 어느 위치에 있는지 확인한 뒤 해당 분면까지 계산한다. 또 다시 분할된 좌표를 기준으로 계산한다. 코드#include <iostream> using namespace std; int power2(int k) { //

0

백준[2263] - 트리의 순회

문제백준 2263 문제 보기 접근 방법분할 정복 방식으로 문제를 풀수 있다. PostOrder에서 루트 값을 찾아내고 InOrder를 사용해 왼쪽, 오른쪽 자식이 몇개씩 있는지 찾아 분할 정복한다. 코드#include <iostream> using namespace std; int N; int inO[100000]; int postO[100000

0

백준[10816] - 숫자 카드2

문제백준 10816 문제 보기 접근 방법숫자를 입력 받음과 동시에 인덱스 정보로 활용해 갯수를 저장한다. 음수 같은 경우는 양수의 최대 범위 이후로 인덱스를 설정해 저장한다. 코드#include <iostream> #include <cstring> using namespace std; int N, M; int arr[20000001]; i

0

백준[1783] - 병든 나이트

문제백준 1783 문제 보기 접근 방법맵의 높이가 1일 때와 2일 때를 먼저 예외처리한다. 맵의 높이가 2일 때, 이동 횟수가 4이상이 되면 모든 경우의 이동을 수행해야 하므로 이동을 3번 이내로 제한한다. 맵의 높이가 2보다 클 경우는 너비를 신경써서 예외처리한다. 4가지 경우를 다 해보면 움직일수 있는 최대 너비가 7이 된다. 이후 접근해야하는 너

0

백준[1744] - 수 묶기

문제백준 1744 문제 보기 접근 방법음수와 양수를 따로 구분해 오름 차순, 내림 차순으로 정렬한 뒤, 2개씩 묶으면 정답 출력이 가능하다.하지만, 2가지 주의해야할 사항이 있는데 1은 묶는 것 보다 더하는게 더 이득. (2 * 1 < 2 + 1) 음수 영역에 숫자가 하나 남고 0이 있는 경우 예외 처리 이 두 가지 경우를 따로 처리해야 한다. 코

0

백준[1931] - 회의실 배정

문제백준 1931 문제 보기 접근 방법회의실을 끝나는 시간을 기준으로 오름 차순 정렬을 한다. 끝나는 시간이 빠른 순으로 회의실을 배정하면 정답이 출력. 코드#include <iostream> #include <algorithm> using namespace std; struct Time { int start, end; }; in