일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 동적 계획법
- 스택
- 그리디
- dfs
- 삼성 기출
- 맛집
- koitp
- dynamic programming
- 완전탐색
- PS
- 브루트포스
- 삼성 SDS 대학생 알고리즘 특강
- 에라토스테네스의 체
- BOJ
- 다이나믹 프로그래밍
- Algorithm
- 구현
- 시뮬레이션
- 백준
- C++
- 소수
- 잠실
- hackerrank
- 알고리즘
- sw expert academy
- 해커랭크
- BFS
- DP
- 백트래킹
- SWEA
- Today
- Total
목록SWEA (6)
펭로그
문제링크 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PoOKKAPIDFAUq 가장 긴 등산로를 만드는 문제로 시작점은 가장 높은 봉우리에서 시작한다.입력을 받을 때 가장 높은 숫자를 highest 변수에 저장하고완전 탐색을 돌리는듯 하면서 값이 highest일 때만 dfs를 돌려서 탐색한다.71727374757677// 값 저장for (int i = 1; i arr[i][j]; highest = max(highest, arr[i][j]); }}Colored by Color Scriptercs A->B 까지 가는 등산로는 A->C->D->B로 돌아서 가는 식의 등산로로 표현할 수도 있기 때문에A-..
문제링크 : https://noj.am/14888문제링크 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeRZV6kBUDFAVH DFS를 이용하여 완전탐색을 시행한 브루트포스 문제이다.각 시행 마다 + - * / 연산 모두를 다음 탐색에서 시행한다.구조를 간단하게 하기 위하여 구조체 안에 생성자를 통해서 다음 노드의 구조체를 만들어준다.이 때, 입력받은 연산이 무엇인지를 확인하여 + - * / 의 연산을 구분해서 데이터를 새로 만들어준다. 재귀 호출 시마다 4번의 추가 호출이 있기 때문에 시간 복잡도는 O(4^N)이다.문제에서 N은 11까지라는 조건이 있으므로 4^11 = 4,194,304 이다.최대 1억..
문제링크 : https://noj.am/14891문제링크 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeV9sKkcoDFAVH 톱니바퀴가 회전하게 되면 각각의 인덱스 위치가 변동된다. 어떤 톱니바퀴의 인덱스가 다음과 같다면0 1 2 3 4 5 6 7 시계방향으로 회전시7 1 2 3 4 5 6 반시계방향으로 회전시1 2 3 4 5 6 0 이렇게 순서가 바뀌므로 rot[] 에 회전이 얼마나 되었는지를 저장해준다.8바퀴를 회전하게 되면 제자리가 되므로 8로 나눈 값을 저장해주면 된다.10111213// 톱니바퀴 회전void rotat(int idx, int dir) { rot[idx] = (rot[id..
참고자료 : https://www.swexpertacademy.com/main/learn/course/subjectDetail.do?subjectId=AV184uV6I70CFAZN 어느 회사 오프라인 코딩 테스트 문제로 문자열 계산기가 나왔었다.중위표기를 후위표기법로 바꿔서 풀면 풀린다는 개념은 알고 있었지만 당시엔 제대로 생각이 안나서 시간만 허비했었다....시험은 이미 끝났지만 그래도 다시 한번 풀어보기로 했다. 사칙연산을 할 때 연산 우선 순위는 다음과 같다. 1. 괄호를 먼저 계산하라.2. 곱셈 또는 나눗셈3. 덧셈 또는 뺄셈 하지만, 이는 사람이 쉽게 이해할 수 있는 형태의 논리이며 컴퓨터가 이해할 수 있는 논리로 바꾸면 다음과 같다. - Step1. 중위 표기법 수식을 후위 표기법 수식으로 변..
문제링크 : https://noj.am/14890문제링크 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeW7FakkUDFAVH (이전 노드 - 현재 노드)의 높이 차이가 +1일 경우 : 내리막(이전 노드 - 현재 노드)의 높이 차이가 -1일 경우 : 오르막 내리막 경사로가 건설되려면 앞으로 len 만큼의 길이가 확보되어야 하고오르막 경사로가 건설되려면 이전에 이미 len 만큼의 길이가 확보되었어야 한다. 내리막 + 오르막 경사로가 건설되어야 할 경우에도 그 사이 길이가 len 만큼 확보되어야 한다. 공간의 확보를 위해선 높이의 차이가 같은 구간이 몇개인지 카운트를 해가면서 계산하면 된다. 1234..
문제링크 : https://boj.kr/3190 N*N의 정사각 보드에 빈칸은 0, 사과는 1, 뱀은 2로 표시해주었다.뱀이 이동할 때 꼬리부터 없어진다는 규칙 때문에 뱀의 몸통은 큐(Queue)를 이용하여 저장하면 된다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374// BOJ 3190 뱀#include #include #include using namespace std; // 방향변화const int dx[] = {0,1,0,-1};const int dy[] = {1,0,-1,0}; struct pt..