목록알고리즘 (192)
곽로그
푼 날짜 다시 푼 날짜 문제번호 참고블로그 메모 19/11/15 2920 https://xtar.tistory.com/17 https://blockdmask.tistory.com/213 1) 코드를 간결하게 2) 내가 생각할 수 있는 접근법/ 생각할 수 없는 접근법
https://www.acmicpc.net/problem/2884 2884번: 알람 시계 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던, 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 맞추기"이다. 이 방법은 단순하다. 원래 맞춰져있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 어차피 www.acmicpc.net import java.util.Scanner; public class Main { public static void main(Strin..
2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때 이다. 예를들어, 2012년은 4의 배수라서 윤년이지만, 1900년은 4의 배수이지만, 100의 배수이기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다. www.acmicpc.net 접근방법: 처음엔 "4의 배수는 끝에 두자리수가 4의 배수이면 된다"로 접근했다. 그러고 400의 배수는 "4의 배수이면서 100의 배수" 이렇게 접근하니까 100, 500 여기서 막혔다. 그냥 %4 %100 %400 으로 풀면 된다. 어려운 접근방법에 꽃혀서 쉬운 방법을 생각하지 못했다. package leapYe..
https://www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다. 그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 때문에, 그 크기와 질량이 엄청난 이유로 최신기술력을 www.acmicpc.net 문제접근 거리가 1부터 10까지에 대한 경우를 하나씩 써나가다보면 규칙이 보인다. 거리(d) ..
1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net 접근방법 처음에 문제 이해를 잘못해서 다른 숫자를 고려하지 않고 6,9의 개수만 고려했다. 그러니까 예를들어 입력이 12369이면 1,2,3,(6,9) 이렇게 4세트. 처음에 좀 시간이 걸려도 문제를 제대로 이해해야 한다. 당연한 얘기지만. 다시. 결국 이 문제에서는 중복된 숫자가 몇개이냐가 관건이다. 예를들어 입력이 112233445577777이라고 했을때 1은 2개, 2는 2개, 3은 2개 4는 2개, 5는 2개 7은 5개 이므로 7때문에 5세트가 필요하다. 즉 중복된 숫자의 개수가 가장 많은 것 만큼 세트가 필요하다는 말이 된다. 그럼 여기서 6..
10250번: ACM 호텔 문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정 www.acmicpc.net 문제접근 H=6,W=12 케이스를 설정하고 표를 그려 하나씩 그려나갔다. 그러면 규칙이 보이는데, 층은 N을 H로 나눈 나머지가 되고 호수는 N를 H로 나눈 몫에 1을 더하면 된다. 근데 여기서 H..
문제 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 www.acmicpc.net 접근방법 최소로 나르려면 5kg을 최대로 해야한다. 그리고 남은 나머지를 3kg으로 운반할 수 있는지를 따지면 된다. N을 5로나..
1977번: 완전제곱수 M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완전제곱수는 64, 81, 100 이렇게 총 3개가 있으므로 그 합은 245가 되고 이 중 최솟값은 64가 된다. www.acmicpc.net 문제접근 M과 N의 범위에 따라 어떻게 처리 해야하는지를 구현하면 된다. 즉, 1(num)부터 시작해서 num의 제곱이 M보다 작으면 num을 1증가시키고 N보다 작거나 같으면 배열에 num의 제곱을 ArrayList에 추가하고 num을 1 증가시킨다. 그 외의 경우에 반복문을 빠져나온다. import java.util.ArrayLis..