일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CI/CD
- 데이터 분석
- 수학
- 다이나믹 프로그래밍
- JavaScript
- jpa
- 그리디
- 펜윅 트리
- Bit
- Air Table
- 삼성SW역량테스트
- LCS
- r
- 우선순위 큐
- 종만북
- 삼성 SW 역량테스트
- 백준 1753번
- BFS
- Cloud Run
- 시뮬레이션
- 컴퓨터 구조
- 접미사 배열
- 다익스트라
- 고속 푸리에 변환
- dp
- 생활코딩
- ICPC
- 이분탐색
- REACT
- Cloud Pub/Sub
- Today
- Total
목록알고리즘 (68)
코딩스토리
www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 코드포스 만년 초록 따리를 벗어나기 위해 그리디 문제를 많이 풀어봐야겠다고 마음먹었다. 이 문제의 풀이는 다음과 같다. 1. 모든 단어에서 각 문자가 얼마만큼의 계수를 갖는지를 구하기 ex) AB이면 10A + B, 즉 A = 10, B = 1을 저장 2. 계수가 큰 알파벳 순으로 정렬 (어차피 전체 단어의 합이기 때문에 계수가 크면 큰 수를 할당해야 한다.) 3. 정렬된 알파벳에 9부터 순서대로 할당하여..
www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 연구소 문제는 매우 유명한? 문제이기 때문에 한번 풀어보았다. 문제를 읽어보면 알겠지만 연구소 1과 비슷하게 백트래킹과 bfs를 사용하여 해결하면 될 것 같았다. 가장 걱정되었던 것은 시간제한이 0.25초인 거였지만 아무리 봐도 다른 풀이가 떠오르지 않아서 생각한 대로 구현해보았다. 풀이과정은 다음과 같았다. 1) 바이러스를 놓을 수 있는 모든 위치를 찾아놓음(최대 10개) 2) 모든 경우를 계산함 3) 이때 각 위치에..
www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 난이도 자체는 어렵지 않았으나 구현이 너무 복잡했다.. 처음에 map으로 접근해보려다가 2시간 넘게 날리고 다시 그냥 배열로 접근했다.. (처음부터 배열로 접근할걸 괜히 까불다가) 이 문제의 핵심 포인트는 아무래도 매 연산마다 바뀌는 숫자들의 개수를 파악해놓는 것 아닐까 싶다. 그리고 이런 문제를 풀때마다 실수하는 점은 i와 j를 헷갈리거나 +=인데 -=으로 쓰는 등 이런 점들을 조심해야 한다 (내..
www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 처음에 너무 복잡하게 생각했었는데 사실 엄청 간단하게 해결할 수 있었다. 문제가 다행히도 매번 톱니바퀴가 회전할 때마다 상태가 변화한 것을 체크해야 하는 것이 아니고 처음 상태에서 회전할 건지 안 할 건지만 판단해주면 되는 문제였다. 아마 이 문제에서의 핵심은 X번 톱니바퀴를 회전시켰을 때 양 옆의 톱니바퀴가 회전할지 안 할지 구하고, 또 양 옆의 톱니바퀴가 회전할지 안 할지 구해야 하는 부분이 가장 구현하..
www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net 삼성 SW 역량테스트 문제집의 문제였다. 문제를 이해하는 데에는 어렵지 않았지만 구현이 문제였다. 일단 "원판"이라는 단어를 보자마자 deque로 구현해야겠다고 생각했다. 구현의 큰 틀은 아래와 같다. 1. 원판을 생성한다 (deque 사용) 2. 원판을 T번 돌린다 - 1) 인접한 수들을 검사한다. - 2) 인접한 수가 있다면 제거, 없다면 평균 구해서 규칙에 맞게 가감 이제 구체적인 구현을 ..