일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래머스
- sw expert academy
- 코테 대비
- 완전탐색
- 쉬운 알고리즘 문제
- 알고리즘 문제
- 직무면접
- swexpertacademy
- D4
- 원서읽기
- sw expert
- English
- nightroutine
- englishbook
- 알고리즘
- 코딩테스트
- 백준
- BFS
- PyQt
- dfs
- SQL
- 삼성
- 코테 준비
- 코테
- MySQL
- the midnight library
- 원서읽자
- readingbook
- STUDYENGLISH
- 원서
- Today
- Total
목록쉬운 알고리즘 문제 (8)
시나브로
처음 이 문제를 접했을 때, D2라는 수준을 감안하여 그냥 탐색해도 될까?라는 의문을 가지고 풀어 보았다. 운이 좋게도 이 솔류션으로도 해결이 가능했다. 하지만, 시간복잡도가 높기에 최적화를 해야될 것이다. Solution 최고값을 안다면, 그 값이 나오기 전까지 계속해서 구매한다면, 1만큼이라도 이익이 발생한다. 전체 값에서 최고값을 찾는다 최고값까지 모든 순간에 구매를 한다 최고값에 도착하면, 이후의 최고값을 다시 탐색한다 탐색한 결과값으로 최고값을 갱신하고 위의 과정을 배열이 끝날 때까지 반복한다 Key Point 입력을 보면 배열의 최고 길이는 1000000이고, 최대 매매가는 10000입니다. 이렇게만 보아도 int의 범위를 넘어갑니다. 그렇기에 sum(answer)의 자료형을 long long..
#include int connect[101][101] = { 0 }; int q = 0; int person_amount = 0; int connect_amount = 0; void search(int list[],int point) { for (int i = 1; i
#include int start_x = 0; int start_y = 0; int end_x = 0; int end_y = 0; int virtual_reality(int signal,int amount,int x, int y) { if (x == end_x&&end_y == y) return amount; if (signal == 0) { if (x > end_x) return virtual_reality(1, amount + 1, x - 1, y); else return virtual_reality(1, amount + 1, x + 1, y); } else { if (y > end_y) return virtual_reality(0, amount + 1, x, y-1); else return virt..
#include int main() { int test_case = 0; scanf("%d", &test_case); for (int q = 0; q < test_case; q++) { int soil_length = 0; int add_money = 0; int money = 0; int soil[10000] = { 0 }; int paper_amount = 0; scanf("%d %d", &soil_length, &money); for (int i = 0; i < soil_length; i++) scanf("%d", &soil[i]); for (int i = 0; i < soil_length; i++) { add_money = 0; for (int j = i; j < soil_length; j++) ..