본문 바로가기

분류 전체보기

(172)
[알고리즘] 백준 11055 가장 큰 증가 부분 수열 / python, dp https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수� www.acmicpc.net import copy N = int(input()) A = list(map(int, input().split())) dp = copy.deepcopy(A) for i in range(1, N): for j in range(i): if A[j] < A[i]: dp[i] = max(dp[i], dp[j]+A[i]) print(max(dp))
[알고리즘] 백준 16768 Mooyo Mooyo / python, dfs, simulation https://www.acmicpc.net/problem/16768 16768번: Mooyo Mooyo In the example above, if $K = 3$, then there is a connected region of size at least $K$ with color 1 and also one with color 2. Once these are simultaneously removed, the board temporarily looks like this: 0000000000 0000000300 0054000300 1054500030 220000 www.acmicpc.net ✔ 문제 설명 N = 행의 수 (열은 10으로 고정) K = 같은것이 K개일때 없앰 N=6, K=3일때를 예시로 들어보면..
[알고리즘] 백준 9050 / python, dp https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 www.acmicpc.net 1 -> 1개 2 -> 1+1, 2 -> 2개 3 -> 1+1+1, 1+2, 2+1, 3 -> 4개 4 -> 1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 1+3, 3+1, 2+2 -> 7개 5 -> 23개 ... f(n) = f(n-3) + f(n-2) + f(n-1)의 규칙성을 가진다. test_case = int(..
git과 github 사용법 간단정리 git 설치 git이 설치되어 있지 않다면 설치한다. https://git-scm.com/downloads Git - Downloads Downloads Mac OS X Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific git-scm.com 설치하고 terminal에서 git버전 확인 git 저장소 만들기 git저장소 만들기를 원하는 프..
python 꿀팁🍯 🍯 string을 10진법으로 파이썬의 int(x, base=10) 함수는 10진법으로 변환해준다. num = '0001' base = 2 answer = int(num, base) #1 🍯 문자열 정렬하기 - ljust, center, rjust 문자열 s를 좌측/가운데/우측 정렬하여 n 길이의 문자열을 만든다. s = '가나다라' n = 7 s.ljust(n) # '가나다라 ' # 좌측 정렬 s.center(n) # ' 가나다라 ' # 가운데 정렬 s.rjust(n) # ' 가나다라' # 우측 정렬 🍯 모든 소문자, 대문자, 대소문자, 숫자 가져오기 import string string.ascii_lowercase # 소문자 abcdefghijklmnopqrstuvwxyz string.ascii_up..
[알고리즘] 프로그래머스 비밀지도 / python, 비트연산자 https://programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 구구절절한.. 내코드 trans함수에서 2진수 변환 한뒤에, 1이 들어있는지 하나하나 비교했다. def trans(n, num): if num == 1: return '0'*(n-1) + '1' if num == 0: return '0'*n ret = '' while True: if num % 2 == 0: ret += '0' else: ret += '1' num //= 2 if num == 1: ret +=..
[알고리즘] 프로그래머스 프렌즈4블록 / python https://programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✔ 풀이 한 turn에서 없앨 수 있는 블록을 한번에 모아모아서 없애기 -> 밑으로 내리기 겹쳐져 있는 블록을 위해서 0으로 만드는 작업을 lst배열에 모아 한번에 한다. 블록을 모으는 lst배열이 비어있다면 작업들을 끝내고 0의 갯수(=없어진 블록의 갯수)를 센다. check 함수 👉 board의 모든 좌표에서 ➡ ↘ ⬇ 좌표를 확인하고 set에 넣어서 4개 모두 같은 값인지 확인 del_down 함수 👉 ..
[python] 정규 표현식 re 알고리즘 문제 풀때 자주 사용하는 것들만 정리 문자 클래스 (character class) [ ] 문자 클래스로 만들어진 정규식은 "[ ] 사이의 문자들과 매치"라는 의미를 갖는다. 즉 정규 표현식이 [abc]라면 이 표현식의 의미는 "a, b, c 중 한 개의 문자와 매치"를 뜻한다. [ ] 안의 두 문자 사이에 하이픈(-)을 사용하면 두 문자 사이의 범위(From - To)를 의미한다. ✔ [a-zA-Z] : 알파벳 모두 ✔ [0-9] : 숫자 문자 클래스 안에 ^ 메타 문자를 사용할 경우에는 반대(not)라는 의미를 갖는다. 예를 들어 [^0-9]라는 정규 표현식은 숫자가 아닌 문자만 매치된다. 자주 사용하는 문자 클래스 정규식을 이용한 문자열 검색 ✔match() : 문자열의 처음부터 정규식과 매..