1. 적용 알고리즘과 문제 설명 그리디 문제 정수로 된 문자열이 주어지고, 자연수 k가 주어지면 정수 문자열에서 k개의 문자를 제거하여 얻을 수 있는 수 중 가장 큰 수를 구하는 문제 문자열에서 문자를 제거하는 것이기 때문에 문자열의 순서는 보존되어야 한다. 접근방법 큰 수를 얻는게 목적인 만큼, 앞자리 수가 커야한다. 스택 하나를 두고, k개의 카드(앞으로 문자를 제거하는 걸 카드라고 표현한다)가 남아있는 한 새로 들어갈 수가 현재 스택의 맨 위의 수보다 커야한다.는 로직이면 가장 큰 수를 얻을 수 있다. 2. 코드에 대한 설명 이걸 코드로 설명하면 k가 0보다 클 때까지는, 스택의 맨 위의 수 >= 새로 들어갈 수 를 만족할 때 까지 스택에서 원소를 뺀다. 그리고 뺄 때마다 k를 1감소 시킨다. im..
https://programmers.co.kr/learn/courses/30/lessons/86052 코딩테스트 연습 - 빛의 경로 사이클 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진 programmers.co.kr level 2 구현 (배열) 우선 사이클에 대해서 이해가 잘 안돼서 블로그를 찾아보고 이해했다. (역시 국어문제인가) 사이클은 같은 노드, 같은 방향을 다시 만났을 때 사이클이 이루어진다. 접근방법 모든 노드에서 갈 수 있는 모든 방향으로 경로가 뻗어나간다. 이를 위해 3중 for문을 돌려 각 노드의 각 방향으로 출발하는 (이름만)d..
https://programmers.co.kr/learn/courses/30/lessons/42839?language=swift 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr level 2 dfs(완전 탐색) 한자리 숫자 여러개로 이루어진 문자열이 주어지고, 종이 조각 하나에 한자리 숫자가 적혀서 흩어져있는 상황이다. 이들을 적절히 조합하여 만들 수 있는 소수의 개수를 반환하는 문제. 즉, 문자열 -> 한자리 숫자들의 배열. 로 만들고 숫자들의 가능한 순열을 구해야 한다. 그렇게 나온 수를 소..

https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr level 2 구현 (최대공약수 & 수학) 직사각형의 가로,세로 크기가 주어지고, 이 직사각형을 구성하는 넓이가 1(1*1) 사각형 중에 대각선이 지나가는 사각형을 제외한 작은 사각형들의 넓이의 합을 반환하는 문제이다. 접근방법 간단해 보였는데 어려웠다. 우선 대각선이 사각형들의 꼭짓점과 만나는 점을 기준으로 작은 사각형으로 분리해야 ..
https://programmers.co.kr/learn/courses/30/lessons/42883?language=swift 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr level 2 큰 수 만들기 (그리디) 정수로 된 문자열이 주어지고, 자연수 k가 주어지면 정수 문자열에서 k개의 문자를 제거하여 얻을 수 있는 수 중 가장 큰 수를 구하는 문제 문자열에서 문자를 제거하는 것이기 때문에 문자열의 순서는 보존되어야 한다. 접근방법 큰 수를 얻는게 목적인 만큼, 앞자리 수가 커야한다. 스택 하나를 두고, k개의 카드(앞으로 문자를 제거하는 걸 카드라고 표현한다)가 남아있는 한 새로 들어갈 수가 현재 스택의 맨 위의 수보다 커야한다.는 로직이면 가장 큰 수를 얻을 수 있다. 오답노트 ..
https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr level2 구현 rows*columns 인 격자판이 있고, 순서대로 1부터 숫자가 채워져 있다. 사각형을 이루는 대각선의 점이 주어지고, 그 사각형의 테두리를 시계방향으로 한칸 회전한다. 여러개의 대각선 점이 주어지고, 각 테두리를 회전시키면서 만난 가장 최솟값을 반환하는 문제 접근방법 판이 커질 것 같아서 다른 방법을 고민해봤는데, 숫자의 ..
https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr level2, 스택 진행 상황, 속도가 아래와 같이 주어진다. 이때 속도는 하루에 할 수 있는 작업의 양 [93, 30, 55] [1, 30, 5] 진행 상황 배열에서 앞쪽에 있는 작업부터 배포될 수 있고, 뒤에 있는 작업은 작업이 먼저 완료되어도 그 앞의 작업들이 배포되기 전까지는 배포될 수 없다. 접근방법 1. 각 작업 마다 필요한 작업일수를 구한다...
https://programmers.co.kr/learn/courses/30/lessons/42860 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr level2 알파벳으로 구성된 문자열이 주어지고, A로만 이루어진 동일한 길이의 문자열을 주어진 문자열과 동일하도록 바꾸려면 알파벳을 바꾸는 조이스틱 방향과, 커서를 이동하는 조이스틱 방향을 몇번 조작해야하는지 그 최솟값을 구하는 문제 어려웠다 ^_^ 접근방법 알파벳 변경을 위한 조이스틱 조작 횟수는 A부터 Z방향으로 이동하는 경우와, A에서..
https://programmers.co.kr/learn/courses/30/lessons/42578?language=swift level 2 옷:종류로 된 딕셔너리가 주어지고, 입을 수 있는 옷의 조합의 수를 구하는 문제 한번에 종류당 1개의 옷을 입을 수 있으며, 아무것도 안입는건 불가능 접근방법* 처음에는 조합을 구하는 문제라고 생각해서 백트래킹이나 완전탐색 같은 알고리즘을 사용해서 조합을 구해야 되나 고민했었다. 안입는 경우를 종류별 옷에 개수에 추가하여 구한 블로그를 참고했다. 고등학생때 확통배울때 했었는데..까먹었었음.. 종류별 옷의 개수 + 1(안입는 경우) 를 구한 후에 모든 종류의 옷의 개수를 곱해주면 된다. 그리고 하루에 최소 하나의 옷은 입어야 하기 때문에 아무것도 안입는 경우를 빼준..

https://programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr 1. 적용 알고리즘과 문제 설명 구현 문제 괄호들로 구성된 하나의 문자열이 주어지면 이 괄호 문자열이 짝이 맞는 괄호들로 구성되어 있는 올바른 문자열인지 검사해야 한다. 근데? 이 문자열만 검사하는게 아님. 이 문자열을 한칸씩 오른쪽으로 밀어서 회전한 모든 문자열들에 대해서도 검사를 해야함 그래서 과연 몇개나 올바른 문자열인지 그 개수를 반환해야 함 이 문제에서 회전한 문자열을 구하는 데 사용한 방법을 그림으로 그려봤다 ^_^ (친절MAX) 이런 방식으로 문자열은 그대로 두고 인덱스의 시작 위치만 바꿔가면서 회전한 문자열을 순회했다 인덱스..
- Total
- Today
- Yesterday
- 우선순위큐
- 트리
- dfs
- 동적계획법
- BFS
- 최대힙
- 게임이론
- 이분탐색
- 다이나믹프로그래밍
- 가장 큰 수 Swift
- Swift
- 알고리즘
- 수학
- 파이썬
- 백준
- 프로그래머스
- 투포인터
- 최단경로
- 스택
- 자바
- 가장 큰 수 프로그래머스
- 최소힙
- 그리디알고리즘
- 정렬
- 브루트포스
- 토마토
- c++
- 백트래킹
- dp
- 웹크롤링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |