본문 바로가기

전체 글

(29)
BAEKJOON Algorithm_2217번 데하! 안녕하세요 DevStone입니다! 그리디 문제 일곱 번째 로프 문제입니다. 저 또한 공부하면서 포스팅하는 거라 제 알고리즘이 최적이거나 정답은 아닙니다! 단순히 참고 용도로 부탁드립니다. 문제 풀이 처음에는 문제가 헷갈렸지만 핵심 문장은 "모든 로프를 사용해야 할 필요는 없으며"입니다. 예를 들어 버틸 수 있는 무개가 3인 로프 하나와 10인로프 하나가 있다면 3인로프 두 개를 사용하는 것보다 굳이 두 개의 로프를 사용하지 않고 두 번째 로프만 사용하는 것이 더 좋습니다. 따라서 로프의 길이를 내림차순으로 나열하고 N을 하나씩 증가시키며 곱하여 그중 가장 큰 값이 들 수 있는 최대 무개라는 걸 알 수 있습니다. 즉 (N번째 로프의 길이 * N) 이라는 식이 세워집니다. 문제 링크 https://w..
BAEKJOON Algorithm_5585번 데하! 안녕하세요 DevStone입니다! 그리디 문제 여섯 번째 거스름돈 문제입니다. 저 또한 공부하면서 포스팅하는 거라 제 알고리즘이 최적이거나 정답은 아닙니다! 단순히 참고 용도로 부탁드립니다. 문제 풀이 이번 11047번 문제에서 한번 경험했던 문제라 빠르게 풀었던 거 같습니다. 우선 물건의 가격을 입력받고 거스름돈(change)이라는 변수를 선언하고 1000-price 값을 할당해줍니다. 거스름돈 리스트를 만들고 카운트를 할 변수를 만들어 줍니다. for문을 통해 money_list에 가장 앞부터 나누어 주고 나눈 값을 카운트에 더해주고, 거스름돈을 나머지로 변경해줍니다. 이 과정을 반복하면 원하는 값을 얻을 수 있습니다. 문제 링크 https://www.acmicpc.net/problem/558..
BAEKJOON Algorithm_1541번 데하! 안녕하세요 DevStone입니다! 그리디 문제 다섯 번째 잃어버린 괄호 문제입니다. 저 또한 공부하면서 포스팅하는 거라 제 알고리즘이 최적이거나 정답은 아닙니다! 단순히 참고 용도로 부탁드립니다. 문제 풀이 우선 문제를 입력받고 숫자를 저장해둘 리스트 num을 선언해줍니다. 단 입력받을 때 split 함수를 사용하여 -를 기준으로 나누어 리스트 형태로 저장합니다. for문을 통하여 리스트 안에 값을 하나씩 꺼내 split를 다시 사용하여 +를 기준으로 분할해 s라는 리스트에 할당합니다. 해당 값들을 모두 더해 total 값에 넣고 num리스트에 append 해줍니다. 마지막으로 for문을 통해 첫 번째 값에 모든 값을 - 해주면 원하는 결과를 얻을 수 있습니다. 문제 링크 https://www.a..
BAEKJOON Algorithm_1931번 데하! 안녕하세요 DevStone입니다! 그리디 문제 네 번째 회의실 배정 문제입니다. 저 또한 공부하면서 포스팅하는 거라 제 알고리즘이 최적이거나 정답은 아닙니다! 단순히 참고 용도로 부탁드립니다. 문제 풀이 문제 처음에 읽고 많이 당황했습니다ㅋㅋ.. 어떻게 접근해야 할지 막막해서 한참 고민하다 일찍 끝나는 회의를 최대한 앞으로 몰면 가장 많은 회의를 할 수 있지 않을까 생각하여 해당 방법으로 작성했습니다. 우선 2차원 배열을 선언해 주었습니다. for문을 통해 시작시간, 종료시간을 입력받습니다. 그 후 sort 함수와 람다식을 활용하여 종료시간을 오름차순으로 정렬해줍니다. 그 뒤 가장 첫 번째 종료시간을 end_time으로 지정해줍니다. (이 과정이 있기 때문에 meeting_cnt를 1로 선언) f..
BAEKJOON Algorithm_11047번 데하! 안녕하세요 DevStone입니다! 그리디 문제 세 번째 동전 0 문제입니다. 저 또한 공부하면서 포스팅하는 거라 제 알고리즘이 최적이거나 정답은 아닙니다! 단순히 참고 용도로 부탁드립니다. 문제 풀이 우선 동전 N값과 그 가치의 합 K 값을 입력합니다. 동전의 종류를 담을 리스트 coin을 선언하고 필요한 동전 개수를 카운트할 coin_cnt를 선언합니다. for문으로 동전의 종류를 입력 받고 리스트를 내림차순으로 정렬하여 금액이 가장 큰 동전의 값이 맨 앞으로 오게 합니다. 이제 for 문으로 coin 값 하나씩 가져와 총합 나누기 i의 값을 coin_cot 개수로 추가해주고 k는 i의 나머지로 변경 후 다음 코인으로 변경 해 반복합니다. 이 과정을 반복해서 동전 개수의 최솟값을 구할 수 있습니..
BAEKJOON Algorithm_11399번 데하! 안녕하세요 DevStone입니다! 그리디 문제 두 번째 ATM 문제입니다. 저 또한 공부하면서 포스팅하는 거라 제 알고리즘이 최적이거나 정답은 아닙니다! 단순히 참고 용도로 부탁드립니다. 문제 풀이 우선 사람 수 N 값을 받고 result 변수를 선언해줍니다. 이제 각 사람별 소요되는 시간을 받을 건데 while문을 사용하여 사람 수에 맞게 입력하지 않으면 다시 입력하도록 설정합니다. 입력된 값은 time이라는 list에 넣어 줍니다. sort함수를 사용하여 오름차순으로 정렬 해 작은 수가 앞으로 오게 합니다. 이제 result 값에 첫 번째 값을 더해준 후 for 문을 이용하여 두 번째 값부터 이전 값을 다음 값에 더한 후 해당 값을 result에 더해주도록 구현합니다. 그러면 우리는 원하는 r..
BAEKJOON Algorithm_2839번 데하! 안녕하세요 DevStone입니다! 그리디 문제 첫 번째 설탕 배달 문제입니다. 문제 풀이 우선 N(설탕)을 입력받습니다. bag라는 봉투 변수를 선언해줍니다. while 문을 이용하여 N이 0보다 같거나 작지 않다면 무한 반복하게 합니다. 설탕이 / 5kg으로 나누어 떨어진다면 break를 해줍니다. 만약 5kg으로 나누어 떨어지지 않는다면 3kg을 빼주고 봉투를 1개 추가해 줍니다. 나누어지지 않을 경우 -1을 출력합니다. 문제링크 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3..
Algorithm 관련 포스팅 공지 데하! 안녕하세요 DevStone입니다! 요즘 바빠져서 포스팅이 많이 뜸해졌는데 틈틈이 포스팅하도록 하겠습니다! 오늘 공지는 저희 블로그 카테고리중 Algorithm 풀이가 있는데 단계별 문제는 혼자서도다들 충분히 푸실 수 있을 난이도라 생각이 들어 그리디 문제 위주로 풀이를 올리도록 하겠습니다! 단계별 문제는 추후 여유가 되면 포스팅 하도록 하겠습니다. 날씨가 요즘 무척 더운데 모두 더위 조심 하세요!