본문 바로가기

PS18

[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.
[BOJ] 백준 15649번 : N과 M (1) 백준 15649번 : N과 M (1) 문제 : https://www.acmicpc.net/problem/15649 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 코드 백트래킹 문제 백트래킹 : 현재 상태에서 가능한 모든 후보군을 따라 들어가며 탐색하는 알고리즘. backtracking(k) 는 arr(k) 를 .. 2021. 12. 17.
[programmers] 2019 카카오 개발자 겨울 인턴십 : 크레인 인형 뽑기 게임 크레인 인형 뽑기 게임 문제 : https://programmers.co.kr/learn/courses/30/lessons/64061 문제 설명 board 배열에는 행 단위로 격자안에 들어있는 각각의 인형에 해당하는 숫자가 입력된다. board 배열의 첫 행은 격자의 가장 위쪽 행에 해당한다. moves 배열의 숫자는 크레인으로 인형을 뽑는 열 번호에 해당한다. 격자에서 열 번호는 왼쪽에서 오른쪽 방향이며 가장 왼쪽이 1열에 해당한다. 코드 board 격자에서 인형을 꺼내 바구니에 넣은 후 해당 위치의 board 격자에는 비어있음을 의미하는 0으로 업데이트 한다. def solution(board, moves): answer = 0 basket = [] for i in moves: if len(baske.. 2021. 12. 15.
[programmers] 2021 KAKAO BLIND : 신규 아이디 추천 2021 KAKAO BLIND RECRUITMENT : 신규 아이디 추천 문제 : https://programmers.co.kr/learn/courses/30/lessons/72410 코드 4단계 이전까지의 new_id 결과가 비어있을 수 있다. 이때 4단계를 진행하면 처음이나 끝 인덱스에 접근하여 index range error가 날 수 있다. 따라서 4단계에서 new_id 문자열이 비어있는지 아닌지 확인하는 조건을 추가하여 and 조건으로 같이 비교한다. new_id = input() def solution(new_id): answer = '' new_id = new_id.lower() for i in new_id: if i.islower() or i.isdecimal() or i == '-' or .. 2021. 12. 1.
[programmers] 2019 KAKAO BLIND RECRUITMENT : 실패율 실패율 문제 : https://programmers.co.kr/learn/courses/30/lessons/42889 코드 스테이지 번호를 key로 하여 모든 스테이지 번호를 갖는 dictionary를 생성하고 value는 0으로 초기화. failure dictionary의 value를 각 스테이지의 도전중인 사용자 수로 업데이트. failure dictionary를 스테이지 번호에 대해 오름차순으로 정렬. failure dictionary의 value를 클리어하지 못한 사용자수 / 스테이지에 도전한 사용자 수 로 업데이트. 현재 스테이지에 도전한 사용자 수에서 현재 스테이지에 실패한 사용자수를 빼서 다음 스테이지에 도전할 사용자 수 업데이트. 마지막 스테이지에 도달한 경우 모든 스테이지를 클리어 했으므.. 2021. 11. 29.
[BOJ] 백준 1260번 : DFS와 BFS DFS와 BFS 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V 입력. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력. 탐색 시작 정점 V부터 방문된 점을 순.. 2021. 11. 29.