일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- OS
- 네트워크
- dp
- BFS
- 파이썬
- 순열
- 프로그래머스
- linux
- 리눅스
- 알고리즘
- DFS
- google coding competition
- 코딩 테스트
- 동적프로그래밍
- 브루트포스
- 구글 킥스타트
- 코딩테스트
- 코딩
- nlp
- CSS
- kick start
- 킥스타트
- 프로그래밍
- 그래프
- 운영체제
- 백준
- 딥러닝
- AI
- PYTHON
- 동적 프로그래밍
- Today
- Total
목록PYTHON (123)
오뚝이개발자
문제 https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 나의 풀이 dp를 사용하면 된다. dp 2차원 리스트에 각 위치에는 (0,0)부터의 부분합을 저장한다. 주황색 부분의 부분합을 구하려면 전체 합에서 A, B, C 부분을 빼주면 된다. 식으로 나타내면, (x2,y2)까지의 부분합 - (A+B) - (A+C) + A 가 된다. A부분이 두번 빼지니까 마지막에 한 번 더 더해주면 된다. 코드 # http..
문제 https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 나의 풀이 DP를 사용하는 문제이다. 메모리 제한이 아주 극심해서 여기에 신경쓰면서 코드를 구현해야 한다. 2차원 리스트로 DP를 구현하면 메모리 초과가 발생하므로 각각의 변수에 저장하도록 한다. 코드 # https://www.acmicpc.net/problem/2096 import sys input = sys.stdin.readline N = int(input()) dp = [list(map(int, i..
문제 https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 나의 풀이 먼지 확산, 먼지 이동 이 두 가지 함수를 짜면 된다. 확산 함수를 짤 때 유의할 점은 먼지가 이미 있던 곳으로도 확산이 일어난다는 점이다. 먼지 이동 함수를 짤 때 유의할 점은 공기청정기를 기준으로 해서 위 아래 순환 방향이 다르다는 점과 공기 청정기로 들어간 먼지는 소멸한다는 점이다. 이동 함수를 짤 때 range 설정이 조금 까다롭긴 하나 차근차근 따져보면 풀 수 있다. 제..
문제 https://www.acmicpc.net/problem/1504 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 나의 풀이 방법은 두 가지가 있다. s -> v1 -> v2 -> n s -> v2 -> v1 -> n 각 경로가 최소가 되는 것을 찾으면 최종경로 또한 최소가 된다. 따라서 s, v1, v2를 시작점으로 해서 다익스트라 알고리즘을 3번 돌린 뒤에 위 두 경로 중 최단거리를 print하면 된다. 코드 # https://www.acmicpc.net/..
문제 https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 나의 풀이 우선순위큐를 사용해서 풀면 된다. 큐에 삽입할 때는 시간이 빠른 순서로 정렬될 수 있도록 (시간, 위치)의 순서쌍을 넣어준다. 주의할 점은 삽입하는 순서인데, x 위치에서 가능한 총 경우의 수는 x-1, x+1, 2x의 세 가지이다. 이 때 순간이동을 하는 경우 소요되는 시간이 0초로 가장 짧으므로, 2x의 위치를 먼저 삽입한 뒤에 방문검사를 해서..
문제 https://codingcompetitions.withgoogle.com/kickstart/round/00000000004362d6/00000000008b3a1c Kick Start - Google’s Coding Competitions Hone your coding skills with algorithmic puzzles meant for students and those new to coding competitions. Participate in one round or join them all. codingcompetitions.withgoogle.com 나의 풀이 단순히 brute-force 방식으로 풀면 시간 초과 에러가 난다. 이 문제에서 핵심은 search를 어떻게 효율적으로 할 것인가..
문제 https://codingcompetitions.withgoogle.com/kickstart/round/0000000000435914/00000000008d9a88#problem Kick Start - Google’s Coding Competitions Hone your coding skills with algorithmic puzzles meant for students and those new to coding competitions. Participate in one round or join them all. codingcompetitions.withgoogle.com 나의 풀이 문제가 조금 복잡하지만 구현 자체는 생각보다 단순하다. d = {'R':['R'], 'B':['B'], 'Y':['..
프로그래밍 언어는 메모리 관리를 어떻게 할까? 프로그래밍 언어는 메모리 관리를 어떻게 하는 것일까? C나 C++ 같은 저수준의 언어는 malloc(), free()와 같이 메모리를 직접적으로 관리하는 함수들을 사용해 메모리 할당과 해제를 한다. 그런데 python, JS, C# 등의 언어를 사용할 때를 생각해보면 개발을 하는 우리는 "메모리"에 대해 생각하지 않고 코드를 짠다. 현대적인 언어로 오면서 메모리 관리는 점차 사람이 하지 않는 쪽으로 바뀌었다. 하지만 분명히 메모리가 어떠한 방식으로든 할당이 되어야 할 것이고, 이를 사람이 신경쓰지 않는다면 누군가가 대신해 주고 있다는 뜻이다. 특히, 파이썬에서 이를 해주는 것이 바로 가비지 콜렉터(Garbage Collector, 줄여서 GC)이다. 메모리를..