
이번 주차는 대망의 DP다. 사실 원래 순서대로 하면 더 나중인데 어떠한 이슈로 DP를 좀 앞당겨왔다. 문제 설명 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr간단히 말하자면 n * m (ㅋㅋ) 모양의 격자가 있는데, 집은 (1,1)에 있고 학교가 (m,n)에 위치해 있다.물에 잠긴 지역을 피해 집 → 학교로 가는 최단경로의 개수를 return 해야 하는 문제.격자의 크기 m, n은 1 이상 100 이하인 자연수이고, m과 n이 모두 1인 경우는 없다.물에 잠긴 지역은 0개 이상 10개 이하이고, 집과 학교가 물에 잠긴 경우는 없다.오른쪽과 아래쪽으로만 움직일 수 있고, 최단경로의 개수를 1,000,0..
문제 설명https://www.acmicpc.net/problem/1253N개의 수 중, 어떤 수를 다른 수 두 개의 합으로 나타낼 수 있으면 그 수는 좋다. 이때 좋은 수가 몇 개인지 출력하는 문제. ex) 1,2,3,4,5,6,7,8,9,10 중 좋은 수는 3,4,5,6,7,8,9,10이다. 3 = 1 + 2, 4 = 1 + 3, ...수의 위치가 다르면 값이 같아도 다른 수로 본다.입력: 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수)출력: 개수를 첫 번째 줄에 출력한다. 풀이 과정투 포인터 알고리즘을 사용했다.투 포인터 알고리즘이란 주로 정렬된 배열의 연속적인 구간에서 합이나..
문제 설명https://www.acmicpc.net/problem/6236 풀이 과정1. Python 풀이import sysinput = sys.stdin.readlineN, M = map(int, input().split())money = [int(input()) for _ in range(N)]min_k = max(money)max_k = sum(money)while min_k = money[i]: temp -= money[i] else: temp = K - money[i] cnt += 1 if cnt M: min_k = K + 1print(answer) 2. Swift 풀이let input = readLine..

오늘의 문제https://www.acmicpc.net/problem/1463ㅋㅋ 하... 실환가 진심 풀다가 화딱지 나서 죽을 뻔했네요 내 풀이import Foundationvar N: Int = Int(readLine()!)!var dp: [Int] = Array(repeating: 0, count: 1_000_001) // 10의 6제곱까지 받을 수 있게dp[0] = 0dp[1] = 0 // 초기값 설정func solution(N: Int) { for i in 2...N { // DP 바텀업 방식 : 작은 문제 -> 큰 문제로 상향식 dp[i] = dp[i - 1] + 1 // 기본 값 if i % 3 == 0 { // i가 3의 배수면? if dp[..
오늘의 문제https://www.acmicpc.net/problem/1654 이게... 최소한 내 머릿속에서라도 일정한 규칙대로 예제가 풀려야 코드로 구현을 하든가 말든가 하는데 그냥 내 머리로도 예제 입력 1을 어떻게 처리해야 200이 나오는지 모르겠어서 한참 걸렸다. 이분탐색인 거 알아도 뭘 어디에 이분탐색을 적용해야 할지 감이 안 잡혀서 레전드 나누기만 하다가 결국 검색 찬스를 써서 해결했다. 코드를 보면 이해는 되는데 생각하는 걸 코드로 구현해내는 능력이 너무 부족한 듯. 너무 오랜만에 하려니까 다 까먹어버린 게 제일 크다. 다시 열심히 하겠습니다... 꾸준히가 제일 중요한 것 같다. 설명은 주석으로 적어놨는데 특히 주의해야 할 부분이1. if-else문에서 numOfLAN과 N값이 같을 때 처리..
오늘의 문제https://www.acmicpc.net/problem/18870 나의 풀이let N = Int(readLine()!)!var input = readLine()!.split(separator: " ").map { Int($0)! }// Set으로 중복 제거 후 sorted로 오름차순 정렬let setInput = Array(Set(input)).sorted()// 딕셔너리 생성// 계산된 값을 저장해두고 아는 값이면 꺼내서 바로 사용하기 위함var dict = [Int: Int]()// (인덱스, 값) 순서로 들어옴for (index, num) in setInput.enumerated() { // 딕셔너리의 key로 '배열의 값'을 저장하고 딕셔너리의 value로 '그 값의 인덱스'를 ..
오늘의 문제 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 내 풀이 import Foundation let input = readLine()!.split(separator: " ").map { Int($0)! } var M = input[0] var N = input[1] var arr: [Bool] = Array(repeating: true, count: N+1) arr[0] = false if N >= 1 { arr[1] = false } // 1 1 일 때는 그냥 강제로 0 출력해버림 if M == 1 && N == 1 { print..
오늘의 문제 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 나의 삽질 과정 1. 처음에는 res 변수를 빈 문자열로 초기화하고 cursor를 res의 인덱스(Int)로 두고 진행했었다. 일 때 cursor를 -1, +1하고 글자일 때는 res를 슬라이싱 해서 cursor를 기준으로 left, right로 나누고 res = left + String(i) + right 뭐 이런 식으로 했었다. 테스트 케이스는 통과했었으나 다른 케이스에서 IndexError가 났는지 제출 시 런타임 에러를 띄웠다. 2. ..
오늘의 문제 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 이 문제... https://tobeforest.tistory.com/13 이거랑 문제 내용만 다르지 로직은 똑같다. 날먹 하려고 일부러 한 건 아닌데, 요새 내가 푸는 챕터가 자료구조라서 그렇다. 자료구조 챕터 다 풀면 다음 챕터로 넘어갈 예정. (자료구조가 챕터 1이다.) 그래도 저거 푼 지 며칠 지났는데 친구랑 고민했던 게 인상 깊어서 그런가 로직이 바로 생각나서 바로 풀었다. 내 풀이 import Foundation va..

오늘의 문제 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 문제 제목 보고 순환 큐로 풀 생각에 front, rear 변수 두고 풀다가 괜히 뺑뺑 돌아 결국 제자리로 오게 된 사연... 실버 3인데 며칠 동안 풀었다...^^ 태초부터 다시 시작했더니 금새 풀렸다. 내 풀이 import Foundation let input = readLine()!.split(separator: " ").map { Int($0)! } let N = input[0] var count = 0 var numbers = readL..
- Total
- Today
- Yesterday
- 코테준비
- 스택
- 코테
- MySQL
- 프로그래머스
- 다이나믹프로그래밍
- swea
- 큐
- 이분탐색
- 알고리즘
- ios앱개발
- 힙
- Swift
- ios
- 구현
- 투포인터
- 정렬
- dp
- Baekjoon
- Python
- BFS
- SQL
- 백준
- 우선순위큐
- Swift로백준풀기
- Deque
- Programmers
- 코딩테스트
- 그리디
- 자료구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |