본문 바로가기

study/문제 풀이

(7)
프로그래머스 - 주식가격 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 스택/큐 문제이다. 모든 시점에서의 주식 가격이 담긴 배열이 파라미터로 넘어온다. 나는 모든 원소를 순회하면서 해당 원소의 다음 원소들을 순회하며 기준 원소보다 작은 원소가 나올 때까지 순회하고 작은 원소가 나오면 기준 원소와 해당 원소의 배열의 인덱스 차이를 정답 배열에 담았다. 그런데 다른 사람의 풀이를 보니, 정답 배열을 모든 원소를 0으로 초기화하여 선언한 후 순회를 하였다. 그리고 기준 원소보다 순회하는 원소가 ..
백준 - 유기농배추(1012) 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net DFS/BFS 문제이다. dfs/bfs 문제는 오랜만에 풀어보는데도 이전에 쓴 포스팅 보면서 잠깐 복습해보니 금방 풀 수 있었다. dfs/bfs 문제에 대한 풀이 방식을 간단히 적어놓았다. 풀어본 적이 별로 없다면 한 번 보고 오면 금방 이해가 될 것이다.(https://jang-sn.tistory.com/89?category=943527) 문제: 배추 밭에 해충이 있는데 해충을 잡으려면 배추흰지렁이를 풀어야 한다. 이 지렁이는 인접한 배추로 이동이 가능하다. 문제에는 배추..
DFS / BFS 정리 출처, 자세한 내용 : youtu.be/7C9RgOcvkvo DFS Depth First Search, 깊이 우선 탐색은 인접된 노드들을 깊이 우선으로 탐색하는 방법이다. BFS Breadth First Search, 너비 우선 탐색은 인접된 노드들을 너비 우선으로 탐색하는 방법이다. DFS는 스택을 사용해 구현한다. 파이썬은 일반 list를 선언해 사용하면 된다. -> 보통 재귀함수와 같이 사용한다. 1. 탐색 시작 노드를 스택에 넣고 방문 처리한다. 2. 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리한다. -> 만약 방문하지 않은 인접 노드가 여러개라면 제시된 기준으로 선택한다. -> 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다..
프로그래머스 메뉴 리뉴얼 2021 카카오 문제 + 삽질과 유용한 라이브러리 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 문제: 단품 메뉴들로 코스요리를 만들 건데, 손님이 같이 주문하는 메뉴들로 조합을 해서 만든다. 코스 요리를 구성하는 메뉴의 개수는 정해져 있다. 예를 들어 단품 메뉴 3개로 구성된 코스 요리를 만든다면, 3개 이상 주문한 조합에서 가장 많이 주문된 조합을 코스 요리로 만든다. 주문 횟수가 같다면 둘 다 추가한다.(자세한 규칙, 설명은 사이트에서) 많이 어려운 문제는 아니었지만, 좋은 메소드, 라이브러리를 몰라 삽질을 했다. 문제 풀이 요약 1. 조합되야 하는 메..
코드업 2001 그리디 문제 최소 대금 언어: 파이썬 링크: codeup.kr/problem.php?id=2001 최소 대금 입력은 5 행으로 이루어지며, 한 줄에 하나씩 양의 정수가 적혀있다. 1행의 정수는 첫 번째 파스타 가격이다. 2행의 정수는 두 번째 파스타 가격이다. 3행의 정수는 세 번째 파스타 가격이다. 4행 codeup.kr 문제: 입력은 5행으로 한줄에 하나씩 양의 정수가 들어온다. 1,2,3번재 숫자는 파스타의 가격, 4,5번째 숫자는 주스의 가격이다. 파스타와 주스 중 하나씩 골라 조합을 만드는데 그 중, 제일 저렴한 조합을 찾고 10% 더한 금액을 찾아 출력한다. 풀이: 들어오는 입력을 파스타 리스트와 주스 리스트로 나눈다.(또는 한 리스트에 담아도 된다.) 최소 금액 변수를 만들고 파스타 리스트와 주스 리스트의 각각 첫..
프로그래머스 탐욕법 레벨 1 체육복 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를..
프로그래머스, 완전 탐색, 모의고사 언어: Python3 문제 요약: 수포자 삼인방은 모의고사에 수학 문제를 전부 자신들의 방법으로 찍는다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요. 시험은 최대 10,000 문제로 구성되어있습니다. 문제의 정..