일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 삼성전자
- 모달진행
- 코드트리
- 코테
- 코드차용
- 공대생 자소서
- 모드코드
- 드럼Tab악보
- 평행조
- ableton live 12
- 취준
- Java
- SW 직군
- 알고리즘
- 삼성기출
- 삼성SW Expert Academy
- 무료 악보 프로그램
- DP
- 음계구조
- 마법사상어와 블리자드
- mode chord
- 화성학응용
- 음악작곡기초
- 화음분석
- syncroom
- code tree
- 스케일분석
- 음정이론
- 대중음악화성
- 코딩테스트
- Today
- Total
목록코딩테스트 (6)
Code Beat
구현 문제에서 행, 열을 다루는 방법이 일반적이지 않은 문제이다. 구슬이 사라진 후에 순서에 맞는 동작을 시키는 것이 중요하고 연쇄되는 동작에 대해 잘 구현하여야 디버깅의 늪에 빠지지 않을 수 있다. 메모리 : 2036 KB 시간 : 12ms 언어 : C++17 #include #include #include #include using namespace std; int map[50][50]; int N, M; int sr, sc; int answer[3] = { 0,0,0 }; deque balls; vector tmp; void set_balls() { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { map[i][j] = 0; } } if (b..
원자력 발전소라는 스토리를 가져왔지만 좌표위의 점에 대한 움직임을 정해진 대로 수행하는 시뮬레이션 문제이다. 산문형식으로 풀어쓰여진 내용을 논리적으로 정리하고 조건을 빠트리지 않는 함수들을 구현한 뒤, 정해진 순서에 맞게 움직이는 문제다. 이런 문제는 코딩 전 조건들을 옮겨적어 정리하고 고민하는 시간이 길어야한다. 중간에 엣지케이스를 찾아서 디버깅하는 것이 엄청 오래걸리고 헷갈리기 때문이다. 물론 한 번에 완전한 코드를 짠다는 건 더 어렵지만 오히려 큰 로직을 틀리더라도 작은 조건을 빠트리지 말자. 아래는 문제를 푼 후 조금 다듬은 코드이다. #include #include using namespace std; struct Atom { int i; int j; int dir; int k; Atom() {..
DFS와 BFS를 코딩테스트 관점에서 비교하고 서술해보려한다. 많은 사람들이 처음 코딩테스트 공부를 하면서 두 알고리즘을 써야하는 상황에 대해 헷갈리곤 한다. 낮은 난이도의 문제는 둘 중 어느 알고리즘을 써도 풀리는 경우가 많기 때문에 난이도가 높아지고 나서 헷갈려 어디부터 다시 공부해야 하나 걱정하는게 아닌가 생각이 들었다. 우선 DFS, BFS는 깊이/너비 를 우선적으로 '탐색'하는 알고리즘으로 그래프, 트리 형태의 구조에서 서로의 연결성을 기반으로 탐색해 결과를 도출하는 알고리즘이다. https://namu.wiki/w/%EA%B9%8A%EC%9D%B4%20%EC%9A%B0%EC%84%A0%20%ED%83%90%EC%83%89 깊이 우선 탐색 Depth First Search, DFS 그래프 순회 ..
범위 내 두 숫자를 포함한 그 사이의 소수 개수를 구하는 문제 에라토스테네스의 체를 이용하는 것이 보편적이고 빠른 소수구하는 알고리즘이다. 범위 내의 소수에 대해 소수의 배수를 제거해나가는 방식으로 2중 반복문을 사용한다. #include using namespace std; bool nums[1000001] = { 0, }; void setNums(){ nums[1] = true; for(int n = 2; n n >> m; setNums(); int cnt = 0; for(int i = n; i
정수 2개가 주어지면, 첫 번째 수를 두 번째 수만큼 거듭제곱하여 출력하는 프로그램을 값을 반환하는 재귀함수를 이용하여 작성해보세요. 입력 형식 첫 번째 줄에 2개의 정수가 공백을 사이에 두고 주어집니다. 2 ≤ 주어지는 정수 ≤ 9 출력 형식 첫 번째줄에 주어진 숫자 중 첫 번째 수를 두 번째 수만큼 거듭제곱하여 출력합니다. 입출력 예제 예제1 입력: 3 9 출력: 19683 #include using namespace std; int main() { unsigned long long int ret = 1; int n, m; cin >> n >> m; while(m--) ret *= n; cout n >> m; unsigned long long int ret = getNum(n, m); cout
0보다 크거나 같고 99보다 작거나 같은 정수가 주어질 때, 다음과 같은 연산을 할 수 있습니다. 주어진 수의 각 자리의 수를 더합니다. 주어진 수의 일의자리 수와 1번에서 구한 수의 일의자리 수를 이어붙여 새로운 수를 만듭니다. 이러한 연산을 계속 반복하다보면 어느 시점에는 처음 주어진 수로 들어올 수 있습니다. 자연수 n이 주어졌을 때, n의 사이클의 길이를 구하는 프로그램을 작성해보세요. 입력 형식 첫 번째 줄에 n이 주어집니다. 0 ≤ n ≤ 99 출력 형식 첫 번째 줄에 n의 사이클 길이를 출력합니다. 입출력 예제 예제1 입력: 55 출력: 3 예제2 입력: 1 출력: 60 #include using namespace std; int main() { int n; cin >> n; int n1, ..