일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 사이클게임
- 최소스패닝트리
- 프림알고리즘
- RGB거리2
- 징검다리건너기
- DFS
- 자물쇠와열쇠
- 큐
- 섬연결하기
- DP
- 그래프탐색
- 파괴되지않은건물
- 두큐합같게만들기
- javascript
- 구현
- [1차]캐시
- 파이썬
- 벽부수고이동하기
- 프로그래머스
- 이모티콘할인행사
- 거리두기확인하기
- 위상정렬
- 백준
- 17404
- 트리의지름
- 알고리즘
- 최단경로
- 다익스트라
- BFS
- 도넛과막대그래프
- Today
- Total
목록알고리즘 (41)
블로그 이름 뭐로 하지
문제 https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 할인율이 10,20,30,40 으로 정해져있다는 말을 못 보고.. ㅠㅠ 그냥 랜덤인줄 알고 풀이가 도저히 떠오르지 않았고... 이게 정말 레벨2가 맞는건지 .. 의심이 갔다. 근데 할인율이 정해져있는 문제였다.ㅎ.... 가능한 할인율 조합을 모두 구해서 그 조합따라서 가입자수와 이익을 계산해서 가장 좋은 경우에 값을 저장해두어 출력해주면 된다. 코드 def solution(users,..

문제 https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 풀이 DP 대표 문제~. 실버1이지만 볼때마다 뭔가 생각이 바로 떠올리지 않는 것 같다. ㅎㅎ -1의 대각선 , -2의 대각선 중에 큰 숫자를 지금의 스티커 점수와 더해주면 된다. 저렇게 고르면 자연스럽게 서로 인접한 스티커끼리는 더하지 않게 돼있다. 코드 T = int(input()) for _ in range(T): n = int(input()) dp = [list(map(in..
문제 https://www.acmicpc.net/problem/9251 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net 풀이 ㅋㅋㅋㅋㅋ아 ㅠ 이제 번호도 외웠다 9251 LCS. 그냥 대명사 같은거다 ^ . ^ ... 거의 풀이를 외운 수준이라 그냥 곧바로 풀었다 ^^ .. ABB ACB 처럼 맨 뒤가 같은 경우엔 (AB,AC를 비교했을 당시의 LCS) + 1 을 저장해주면 되고 ABC ABB 처럼 맨 뒤가 다른 경우엔 AB ABB 를 비교했을 때의 LCS와 ABC..
문제 https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net 풀이 트리 공포증이 있는 나는 조금 쫄았지만 다행히 맨 앞 노드 외에 뒤에서 맨앞 노드보다 작은 부분은 왼쪽으로, 큰 부분은 오른쪽으로 분류해주면 되겠다..는 생각을 했고 최근에 트리 전위순회 관련 재귀 문제를 풀었어서 금방 적용할 수 있었다! 예를 들어 50 30 24 5 28 45 98 52 60 라는 전위 순회 값이 있을 때, 루트 노드(맨 앞 노드)인 50을 기준으로 작은..
문제 https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net 풀이 1. 모서리는 치즈가 없다고 했으니 (0,0)부터 근접한 모든 공기 부분을 BFS로 탐색하여 -1로 변경해준다. (그러면 치즈 내면의 공기 부분은 0으로 남아있을 것) 2. 2차 for문을 돌면서 arr[i][j] == 1(치즈)일 경우에 근접한 4면 중 공기가 2면 이상인지 확인한다. 두 면 이상이 공기라면 q에 해당 좌표를 넣어둔다. 3. q가 빌 때까지 해당 치즈들을 ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/92344 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 처음 봤을 때 뭐야 문제가..왜이렇게 쉬워...?!!!!!라면서 5분 내에 풀고 싱글벙글이었는데 아니나 다를까 정답률이 30퍼 대인 이유가 있었다. 효율성 테스트에서 멸망해버림 ㅋㅋㅋㅋ ㅠ 해시를 써야할까...? 그래도 복잡도가 O*N*M에서 벗어나기 힘들거 같은데 ... 라는 생각을 하면 삽질만 하다가 절대 내 머리로는 이 효율성을 못 뚫을 것 같아서 해설을 봤다. https://te..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 예전에는 DFS로 풀었길래 이번엔 BFS로 풀어봤다. 사실 요렇게 하나의 덩어리를 찾는건 DFS가 뭔가 더 정석인 느낌인데... 새로운 것도 하고 싶어서 ㅎㅎ 그리고 난 원래 BFS를 더 좋아한다. 깊이탐색하다보면 재귀때문에 헷갈린다ㅠ 이 문제는 정말 기초적인 DFS BFS문제라서 두 풀이가 맥락이 비슷~하다. 방문한 노드는 visited를 True로 변경해주고 방문하지 않은 아이들만 ..
문제 https://www.acmicpc.net/problem/2448 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net 풀이 난 이런 류의 문제가 참 어렵다 ^ __ ^ ... 머리를 굴려야하는데 머리가 안 굴러가서 그른가.. 규칙은 n=3일때 만들었던 삼각형이 n=6일때 양쪽에 추가되고, n=6일때 만들었던 트리가 n=12일때 양쪽에 추가되는 식으로 발전한다는 것이다. 사실 거기까진 오케이였는데 양쪽에 공백을 넣는걸 어떻게 넣어야하나..ㅠㅠ 이 부분에서 해결이 안 됐다. 다른 분 풀이를 보니 우선 n=3일때 맨밑은 5칸, n=6일때 맨밑이 11칸이니까 우선 2..
문제 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 풀이 2달 전에 풀었던 문젠데 지금 다시 풀 때랑 2달 전 풀이랑 생각한게 똑~~같아서 놀랐다. 난 2달 전과 비교해서 발전한게 없다는 뜻인건가(...) 뭐 아무튼 ... bfs문제였고 visited에 해당 칸에 도달하기까지 가장 짧게 방문한 거리를 저장해두는 방식이다. 여기서 visited를 3차원으로 구성하는데 visited[2][2][1] 에 들어간 값의 의미는..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 논리는 떠올렸는데... 중간에 실수한 것들 디버깅하면서 찾아내는게 참 힘들었다. 늘 느끼지만 이런 시뮬레이션은.. 처음부터 정신 똑바로 차리고 푸는게 좋은듯하다. 실수 찾아내기 넘 힘들어... 1. 처음에 자물쇠가 다 1로 채워져있으면 열쇠가 굳이 필요없으므로 True를 리턴한다. 2. 키를 90도 회전한다. 3. 회전한 키가 lock에 들어갈 수 있는 모든 경우의 수를 다 탐색한다. ..