본문 바로가기

전체보기192

[Greedy] 이코테 - 만들 수 없는 금액(py) 문제 동네 편의점의 주인인 동빈이는 N개의 동전을 가지고 있습니다. 이때 N개의 동전을 이용하여 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하세요. 예를 들어, N=5이고, 각 동전이 각각 3원, 2원, 1원, 1원, 9원짜리(화폐 단위) 동전이라고 가정합시다. 이때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 8원입니다. 또 다른 예시로, N=3이고, 각 동전이 각각 3원, 5원, 7원 동전이라고 가정합시다. 이때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 1원입니다. 입력 조건 첫째 줄에는 동전의 개수를 나타내는 양의 정수 N이 주어집니다. (1≤N≤1,000) 둘째 줄에는 각 동전의 화폐 단위를 나타내는 N개의 자연수가 주어지며, 각 자연수는 공백으로 구분합니다.. 2023. 7. 11.
[Greedy] 이코테 - 문자열 뒤집기(py) 문제 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 풀이 - 내 풀이 s = input() one = s.split('0') zero = s.split('1') one_len = 0 zero_len = 0 for i in one: if i != '': one_len += 1 for i in zero: if i != '': zero_len += 1 print(zero_len) if zero_len < one_len else print(one_len) 0과 1로 이루어진 문자열의 연속된 부분들을 부분 집합으로 .. 2023. 7. 11.
[Greedy] 이코테 - 곱하기 혹은 더하기(py) 문제 각 자리가 숫자(0부터 9)로만 이루어진 문자열 S가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 'x' 혹은 '+' 연산자를 넣어 결과적으로 만들어질 수 있는 가장 큰 수를 구하는 프로그램을 작성하세요. 단, +보다 x를 먼저 계산하는 일반적인 방식과는 달리, 모든 연산은 왼쪽에서부터 순서대로 이루어진다고 가정합니다. 예를 들어 02984라는 문자열이 주어지면, 만들어질 수 있는 가장 큰 수는 ((((0+2)x9)x8)x4) = 576입니다. 또한 만들어질 수 있는 가장 큰 수는 항상 20억 이하의 정수가 되도록 입력이 주어집니다. 입력 조건 첫째 줄에 여러 개의 숫자로 구성된 하나의 문자열 S가 주어집니다.(1 2023. 7. 11.
[JS] 소수를 정수를 만드는 여러 방법 - floor, ceil, round, trunc, parseInt 참고 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다른 언어 공부하다 다른 언어로 풀려고 하면 기본적인 게 생각이 안 날 때도 있다.. 문법도 금방 알아차려도 순간 헷갈리고.. 다른 사람도 그런지 모르겠다. 간단한 것도 정리를 잘 해놓자! (파이썬 풀다 자바스크립트로 오면 ;, { } 등 붙여주기 귀찮아진다.) ✏️ JavaScript에서 정수를 만드는 여러 방법 1. Math.floor() - 소수점 내림 Math.floor(x), x보다 작거나 같은 가장 큰 정수를 반환한다. (양수에서 항상 뒤 소수점을 모두 버린다) console.log(Ma.. 2023. 7. 11.
[Greedy] 이코테 - 모험가 길드(py) 문제 모험가 길드장인 동빈이는 모험가 그룹을 안전하게 구성하고자 공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여해야 여행을 떠날 수 있도록 규정했다. N명의 모험가에 대한 정보가 주어졌을 때, 여행을 떠날 수 있는 그룹 수의 최댓값을 구하라. 입력 조건 첫째 줄에 모험가의 수 N이 주어집니다. (1 = min_info: max_info = max(info) n -= max_info info.remove(max_info) groups += 1 print(groups) 책 풀이를 확인하고 나면 말도 안되는 코드.. 오름차순으로 정렬은 잘 해줬지만, 이후 list에서 최댓값을 찾아 그 수만큼 먼저 그룹으로 만들어주어 시간이 훨씬 걸린다. (통과 못하는 테스트 코드도 있을 것 같다) - .. 2023. 7. 9.
[Greedy] 이코테 - 1이 될 때까지(py) 문제 어떠한 수 N이 1이 될 때 까지 다음의 두 과정 중 하나를 반복적으로 선택해 수행하려고 한다. 단, 두번째 연산은 N이 K로 나누어 떨어질 때만 선택할 수 있다. N에서 1을 뺀다. N을 K로 나눈다. N과 K가 주어질 때 N이 1이 될 때 까지 1번 혹은 2번의 과정을 수행해야 하는 최소 횟수를 구하는 프로그램을 작성하시오. 입력 조건 첫째 줄에 N(2 2023. 7. 9.