
https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 이 문제는 저번에 풀었던 일차원 배열의 누적합을 구하는 문제인 '구간 합 구하기 4'에서 배열의 차원을 이차원으로 늘린 것이다. 일차원 배열일 때는 단순히 생각할 수 있었는데, 이차원으로 확장하니 무엇을 빼고 더해야 하는지 개념이 잘 안 잡혔다. 책을 펼쳐서 누적합의 개념에 대해 살펴보았다. sum(y1, x1, y2, x2) = psum[y2][x2] ..
https://www.acmicpc.net/problem/11722 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net 해결한 코드는 간단하지만, dp를 떠올리는데 시간이 좀 걸렸다. 인덱스를 하나씩 늘려가며 그 이전의 값들을 검사하여 감소할 때, dp[i]와 dp[j]+1을 비교하여 더 큰 값을 넣는 방식으로 구현하였다. dp 공부를 더 해야겠다... # 가장 긴 감소하는 부분 수열 import sys input = sys.stdin.re..
시간이 좀 지나서 쓰긴 하지만 대학교 4년이라는 기간동안 나에게 유의미한 변화를 준 경험이라 남겨보려고 한다. 내가 프로그래밍을 공부를 시작한 건 고등학교 2학년 때였다. 학교 수업 시간에 배운 파이썬이 재밌어서 혼자 C언어도 공부해보고 그랬었다. 그렇게 진로를 이쪽으로 선정하게 되었고 소프트웨어를 대학교에서 전공하게 되었다. 하지만 어떻게 공부를 해야 하는지, 무엇을 공부해야 하는지 알 수가 없었다. 그래서 주어진 학교 공부만 하고 그 외의 공부는 하지 않았다. 시간은 흘러 대학교 4학년이라는 졸업반이 되었다. 그때부터 진로에 대한 고민을 다시 시작하게 되었다. '학교를 졸업하면 무엇을 해야 하지'와 같은 막연한 불안감이 항상 나를 덮쳤다. 그때 학교 선배님이 슬랙에 공유해주신 GDG Cloud Kor..

https://www.acmicpc.net/problem/1057 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 www.acmicpc.net 문제는 되게 간단하게 풀었다. 몇번째 라운드에서 만나는지만 계산하면 되기 때문에 한 라운드에서 A, B의 번호가 어디인지 찾았다. 사용한 수식은 위의 과정을 통해 알아냈다. # 토너먼트 import sys input = sys.stdin.readline N, A, B = map(int, input().split()) answer = 0 while True: if A == B: print(answer) b..
https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀긴 풀었는데 정말 비효율적으로 푼 것 같다. 일단 제일 먼저 한 생각이 progresses, speeds 배열을 가지고 기간이 얼마나 걸리는지를 담은 배열(temp)를 만들었다. 배열의 값을 넣을 때는 ceil 함수를 사용하여 올림으로 계산하였다. 그러고 temp의 모든 값이 0이 될 때까지 반복문을 돈다. temp[idx] 값이 0이라면(개발이 완료되었다면) 다음 temp를 검사한다. 만약 0..
https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 문제보고 중복순열로 풀려고 하다가 .. 백트래킹도 생각해봤다가.. n을 1부터 증가해가며 확인해보니 간단하게 dp로도 풀 수 있었다. 문제에 적용할 알고리즘을 적절히 떠올리는게 너무 어려운 것 같다. def solution(n): dp = [1, 1] + [0] * (n-1) for i in range(2, n+1): dp[i] = dp[i-1] + dp[i-2] return dp[n] %..
https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(s): Q = s[2:-2].split('},{') Q.sort(key=lambda x:len(x)) answer = [] for q in Q: l = q.split(',') for i in l: if int(i) not in answer: answer.append(int(i)) return answer 문제를 보자마자 집합의 길이가 작은 순서대로 answer 배열에 포함되..
https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import deque def solution(s): answer = 0 Q = deque(s) for i in range(len(s)): Q.append(Q.popleft()) if check(Q): answer += 1 return answer def check(Q): stack = [] for q in Q: if q in ('(', '[', '{'): stack..
- Total
- Today
- Yesterday
- 수학
- 싸피
- 브루트포스
- 10816
- 1759
- 조합
- 1764
- 딕셔너리
- 백트래킹
- 큐
- 러스트
- 백준
- 10971
- 프로그래머스
- 11051
- 스택
- 자료구조
- heapq
- 1715
- 1358
- dp
- 10845
- 10815
- 덱
- 파이썬
- 삼성청년소프트웨어아카데미
- 1182
- 빌림
- 2805
- 17478
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |