목록알고리즘공부 (10)
도토리 줍는 개발자 감자
https://www.acmicpc.net/problem/1036 1036번: 36진수 첫째 줄에 수의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에 수가 주어진다. N은 최대 50이고, 수의 길이도 최대 50이다. 마지막 줄에 K가 주어진다. K는 36보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net 각 알파벳을 Z로 변경했을 때 총 합에 얼마나 영향을 끼치는지 알아야함! 입력값으로 1 A98 1 을 예시로 들어보겠음! A를 Z로 변경했을 때 총 합에 영향을 끼치는 값은 Z(35)*36*36 - A(11)*36*36 임 총 합에 영향을 끼치는 크기 A Z(35)*36*36 - A(11)*36*36 9 Z(35)*36 - 9*36 8 Z(35) - 8 그러면 A를 Z로 변경했을 때 가장..
https://www.acmicpc.net/problem/22871 22871번: 징검다리 건너기 (large) $N$개의 돌이 일렬로 나열 되어 있다. $N$개의 돌에는 수 $A_{1} A_{2} ... A_{i} ... A_{N}$로 부여되어 있다. 가장 왼쪽에 있는 돌에서 출발하여 가장 오른쪽에 있는 돌로 건너가려고 한다. 항상 오른쪽으 www.acmicpc.net 문제 풀이 다이나믹 프로그래밍으로 풀었다. K의 최소값을 구하기위한 배열로 dp[n]를 선언해준다. (일단 dp[n] 배열의 각 값들을 -1로 초기화시켜준다.) 만약 dp의 값이 -1이 아닌경우는 저장된 값을 return 해준다. -1인경우는 dp값을 Long.MAX_VALUE으로 변경해준다. 그리고 for문을 통해 모든 이동 범위의 힘..
https://programmers.co.kr/learn/courses/30/lessons/68646?language=kotlin 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr 해설 배열의 (i+1) 번째 값들이 최후의 풍선으로 남을 수 있는지 확인해야한다. - (i+1)번 째 풍선이 최후의 풍선으로 남을 수 있는 조건 (i+1)번 째 풍선이 왼쪽에 있는 풍선들의 최솟값보다 값이 작거나 오른쪽에 있는 풍선들의 최솟값보다 값이 작으면 무조건 최후로 남을 수 있다. 더 작은 풍선을 터트릴 수 있는 기회는 한 번 사용할 수 있습니다. 왼쪽이나 오른쪽에 있는 풍선들의 최솟값보다 최후의 풍선 값이 더 작으면 무조건 최후의 ..
https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 생성자가 없는 숫자를 셀프 넘버라고 한다. 즉, d(n)함수로 만들 수 없는 숫자가 셀프넘버이다. 방법 1. 셀프넘버인지 체크하는 0~..
https://programmers.co.kr/learn/courses/30/lessons/49191?language=python3 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 오늘은 프로그래머스 코딩테스트 연습문제인 그래프- 순위를 설명하겠습니댜 (이게 왜 그래프문제인진 잘 모르겠습니다) 승패를 저장하기 위해 win과 lose배열을 만들었습니다. 각 배열의 index는 선수번호를 의미하고, 각 배열의 값들은 선수가 이기거나 진 선수들의 번호가 저장됩니다. 초기에 주어진 경기 결과(results)를 사용하여 win과 lose 배열에 이기거나 진 선수들의 번호를 저장합니다. (for i, j in results: ..
https://programmers.co.kr/learn/courses/30/lessons/84512?language=python3 코딩테스트 연습 - 5주차_모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr 안녕하세요~~ 오늘은 프로그래머스 위클리챌린지 5주차_모음사전 문제 리뷰하도록 하겠습니다. 이번 문제는 중복순열 문제입니다!!! 중복순열은 서로다른 n개중에 r개를 중복을 허용하여 나열하는 경우입니다. 파이썬 표준 라이브러리인 itertools는 순열(permutations())..
https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 이번 문제는 어렵지 않습니다! 근데 효율성 부분에서 알려드릴 점이 있어서 포스팅하게되었습니다~~ 처음에 시도한 방법 def solution(prices): answer = [] while(prices): count = 0 now = prices.pop(0) for k in prices: count+=1 if now>k: ..
오늘은 백준 [2573] 빙산 파이썬 문제를 설명하겠습니다!!! https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net while True: 부분부터 설명하겠다. 이 부분은 코드를 실행시켰을 때 main 부분이라고 생각하면 된다. 나는 빙산의 덩어리 갯수를 확인하고 빙산을 녹이는 순서로 코드를 작성했다. (첫 번째 while문): 빙산 덩어리 갯수확인-> 빙산녹이기 (두 번째 while문): 빙산덩어리 갯수확인-> 빙산녹이기라고 생각하면 된다. ..