Python
-
[Python] 백준 16938 캠프 준비알고리즘/문제풀이 2021. 9. 11. 21:35
1. 문제 링크 https://www.acmicpc.net/problem/16938 16938번: 캠프 준비 난이도가 10, 30인 문제를 고르거나, 20, 30인 문제를 고르면 된다. www.acmicpc.net 2. 문제 요약 캠프에서 사용한 문제 방법의 수를 출력한다. 3. 아이디어 정리 조합을 이용해서 2~n개까지 문제를 뽑아서 조건에 맞으면 결과에 +1을 해준다. 4. 문제 풀이 4-1. 내 풀이 import sys from itertools import combinations # 문제 수, 난이도 합 l크거나 같고, r보다 작거나 같다, 난이도 차 x보다 크거나 같다 n, l, r, x = map(int, sys.stdin.readline().split()) arr = list(map(int,..
-
[Python] 백준 2579 계단 오르기알고리즘/문제풀이 2021. 9. 11. 21:33
1. 문제 링크 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 2. 문제 요약 계단에 점수가 있을 때 게임에서 얻을 수 있는 점수의 최댓값을 구한다. 단 3개 이상의 연속된 계단은 안됨! 3. 아이디어 정리 dp[i][j] 정의: 현재까지 j개의 계단을 연속해서 밟고 i번째 계단까지 올라섰을 때 최댓값. i 계단은 밟음 점화식 (연속으로 최대 2개만 가능하니 아래 두 점화식이 나온다.) dp[i][1] = max(dp[i - 2][1], dp[i - 2]..
-
[Python] Programmers 위클리 챌린지 5 모음 사전알고리즘/문제풀이 2021. 9. 11. 21:16
[Python] Programmers 위클리 챌린지 5 모음 사전 1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/84512 코딩테스트 연습 - 5주차_모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr 2. 문제 요약 3. 아이디어 정리 백트래킹을 이용하여 원하는 단어가 나올 때까지 알파벳을 순서대로 진행한다. 4. 문제 풀이 4-1. 내 풀이 global count global result count = 0 result = ..
-
[알고리즘 자주 사용]Python 기본 자료 구조&문법 + 라이브러리알고리즘/알고리즘 공부 정리 2021. 9. 10. 13:18
이번 시간에는 알고리즘에서 자주 사용되는 python 문법에 대해서 정리하겠습니다. 1. 자료형 1-1. 수 자료형 아래는 나누기 관련 사용 방법입니다. # 나누기 a = 7 b = 3 print(a / b) # 나누기 2.3333333333333335 print(a % b) # 나머지 1 print(a // b) # 몫 2 print(divmod(5, 3)) # (1, 2) - 나머지와 몫 1-2. 문자열 자료형 아래 예시를 공부하고 카카오 신규 아이디 추천을 풀어봅시다. 파이썬을 이용하여 쉽게 문자열을 다룰 수 있습니다. # 1. * 으로 문자열 곱하기 a = "STRING" print(a * 3) # STRINGSTRINGSTRING # 2. 문자열 슬라이싱 a = "ABCDEF" print(a[2..
-
[Python] Programmers 키패드 누르기알고리즘/문제풀이 2021. 9. 4. 15:37
1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 2. 문제 요약 3. 아이디어 정리 번호가 왼쪽 방향인 경우 왼쪽 손 번호가 오른쪽 방향인 경우 오른쪽 손 중간인 경우, 왼손 오른손 계산을 진행한다. 거리 계산하는 방식은 아래와 같다. (왼손 거리 구하는 경우 예시) 손이 가운데 있는..
-
[Python] Programmers 직업군 추천하기알고리즘/문제풀이 2021. 9. 4. 15:31
1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/84325 코딩테스트 연습 - 4주차 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부 programmers.co.kr 2. 문제 요약 언어 선호도 * 직업군 언어 점수 총합이 가장 높은 직업군을 리턴한다. 3. 아이디어 정리 모든 직군에 대한 점수를 dict화 해서 저장한다. 모든 직군별 언어 선호도 * 직업군 언어 점수 총합을 구하여 가장 큰 값이 나올 때마다 갱신해 준다. 4. 문제 풀이 4-1. 내 풀이 from collections import defau..
-
[Python] 백준 1038 감소하는 수알고리즘/문제풀이 2021. 9. 4. 15:29
1. 문제 링크 https://www.acmicpc.net/problem/1038 1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 www.acmicpc.net 2. 문제 요약 n번째 감소하는 수를 찾는 문제이다. 9876543210 이후로 감소하는 수는 없기 때문에 그 이후 수는 -1을 출력한다. 3. 아이디어 정리 0~9로 1개~10개까지 모든 조합을 구한다. 오름차순을 하여 정렬을 진행한다. 해당 수를 출력하거나 인덱스 에러가 나면 해당 순서 감소하는 수가 없는 것이라 -1 출력한다. 4. 문제 풀이 4-1. 내 풀이 ..
-
[Python] 백준 11659 구간 합 구하기 4알고리즘/문제풀이 2021. 9. 4. 15:26
1. 문제 링크 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 2. 문제 요약 i번째 수부터 j번째 수까지 합을 구한다. = 구간합 3. 아이디어 정리 현재 수 + 앞에 존재하는 수들의 합을 구한다. 1에서 구한 값 j에서 i - 1을 빼면 구간에 대한 합을 구할 수 있다. 4. 문제 풀이 4-1. 내 풀이 import sys # 수의 개수, 합을 구해야하는 횟수 n, m = map(int, sys.stdin.readl..