본문 바로가기

PS11

[BOJ] 백준 1932번 : 정수 삼각형 백준 1932번 : 정수 삼각형 문제 : https://www.acmicpc.net/problem/1932 코드 경로를 따라가며 정수 삼각형의 해당 수를 선택했을 때 선택된 수의 합을 저장하는 dp 2차원 리스트를 생성한다. dp는 정수 삼각형의 크기와 같다. 삼각형의 맨 위층은 정수 하나이므로 dp에 그대로 입력값을 저장한다. 삼각형의 두번째 층 부터 맨 아래 까지는 하나의 층에서 왼쪽부터 오른쪽으로 이동하며 dp값을 갱신한다. 하나의 층 내에서 가장 왼쪽 값(j = 0)은 대각선 위층의 오른쪽 값으로 부터만 선택 될 수 있다. dp에 위층의 대각선 왼쪽값은 존재하지 않음. 여기에 현재 선택된 수를 더해 dp에 저장한다. 마찬가지로 하나의 층 내에서 가장 오른쪽 값(j = i - 1)은 대각선 위층의 .. 2022. 1. 11.
[BOJ] 백준 24049번 : 정원 (Easy) 정원(Easy) 문제 : https://www.acmicpc.net/problem/24049 문제 세로길이 n, 가로길이 m이 첫번째 줄에 입력으로 주어진다. 정원의 가장 왼쪽 n개의 꽃 색깔이 두번째 줄에 입력으로 주어진다. 정원의 가장 위쪽 m개의 꽃 색깔이 세번째 줄에 입력으로 주어진다. 왼쪽과 위쪽 칸에 심어져 있는 꽃의 색을 보고, 두 꽃의 색이 같으면 노란색 꽃, 다르면 빨간색 꽃을 심는다. 노란색 꽃은 0, 빨간색 꽃은 1로 표현한다. 결과로 n행 m열 칸의 꽃의 색 출력한다. 코드 입력으로 주어지는 행, 열의 정보를 포함한 그래프를 그리기 위해 가로 m + 1 크기, 세로 n + 1 인 배열을 만든다. 1, 1 칸부터 차례로 돌며 왼쪽과 위쪽 꽃의 색을 비교해 현재 칸에 꽃의 색을 정한다... 2022. 1. 4.
[BOJ] 백준 24039번 : 2021은 무엇이 특별할까? Good Bye, BOJ 2021! A번 - 2021은 무엇이 특별할까? 문제 : https://www.acmicpc.net/problem/24039 문제 연속한 두 소수의 곱으로 이루어져 있으면 특별한 수라 부른다고 약속한다. 주어진 수 N보다 큰 특별한 수 중 가장 작은 수를 구한다. 코드 약수는 대칭으로 존재하기 때문에 특정수의 제곱근값보다 작은 수의 범위에서 약수가 존재하지 않으면 제곱근값보다 큰 범위의 수에서도 약수가 존재하지 않는다. 이 점을 활용하여 소수 판별 함수 is_prime_num() 의 경우 소수 여부를 판단할 숫자가 num일 때 num의 제곱근 만큼만 반복문을 돌게 하여 연산횟수를 줄인다. 2부터 차례로 증가시키며 소수인 수를 구해 소수이면 리스트에 저장한다. 소수를 2개 찾았을 .. 2022. 1. 4.
[programmers] 프로그래머스 위클리 챌린지 : 피로도 프로그래머스 위클리 챌린지 : 피로도 문제 : https://programmers.co.kr/learn/courses/30/lessons/87946 코드 완전탐색 가능한 경우의 수 만큼 던전을 차례로 탐험하며 탐험할 수 있는 던전 수를 이전의 값과 비교해 탐험할 수 있는 최대 던전 수를 갱신한다. 그리고 탐험할 수 있는 최대 던전 수를 출력한다. answer = -1 def backtracking(k, dungeons, count, is_used): global answer if count > answer: answer = count now = k for i in range(len(dungeons)): if not is_used[i]: if now >= dungeons[i][0]: now = now - .. 2021. 12. 21.
[programmers] 프로그래머스 위클리 챌린지 : 교점에 별 만들기 프로그래머스 위클리 챌린지 : 교점에 별 만들기 문제 : https://programmers.co.kr/learn/courses/30/lessons/87377 코드 찾은 정수 교점들을 y값에 해당하는 x값들을 리스트 형태로 만든다. y값은 key가 되고 y값에 해당하는 x값들의 리스트가 value가 되는 dictionary이다. dictionary는 y값(key)을 기준으로 내림차순으로 정렬한다. dictionary에 저장된 y값의 최댓값부터 최솟값까지 내려가며 결과를 출력한다. dictionary의 첫 요소를 꺼낸다. 현재 y의 위치가 위에서 꺼낸 요소의 y 인 경우 꺼낸 요소에 포함된 x, y교점인 경우만 "*"를 출력하고 그 외의 좌표에서는 "."를 출력한다. y범위 안에서 출력되는 한 행의 길이는.. 2021. 12. 21.
[programmers] 프로그래머스 위클리 챌린지 : 최소직사각형 프로그래머스 위클리 챌린지 : 최소직사각형 문제 : https://programmers.co.kr/learn/courses/30/lessons/86491 코드 가로 세로 방향을 바꿔서 넣을 수 있다. 그러므로 만약 가로 < 세로 이면 가로, 세로 중 큰 값을 가로에 작은 값을 세로에 바꿔 저장한다. def solution(sizes): answer = 0 max_w = 0 max_h = 0 for w, h in sizes: if w < h: w, h = h, w max_w = max(w, max_w) max_h = max(h, max_h) answer = max_w * max_h return answer 2021. 12. 21.