목록데이터 엔지니어링 정복/Algorithm (159)
지구정복
https://www.acmicpc.net/problem/16974 16974번: 레벨 햄버거 상근날드에서 오랜만에 새로운 햄버거를 출시했다. 바로 레벨-L 버거이다. 레벨-L 버거는 다음과 같이 만든다. 레벨-0 버거는 패티만으로 이루어져 있다. 레벨-L 버거는 햄버거번, 레벨-(L-1) 버거, www.acmicpc.net -문제해설 자바에서 처음에 문자열을 구해서 풀다가 String 최대값을 벗어나서 메모리 초과가 계속 떳다... 다른 사람 풀이 참고했더니 재귀함수와 수학을 이용해서 푸는 문제였다. 방법은 맨 처음에 각 레벨의 전체재료수와 각 레벨의 패티수를 배열에 저장해준다. 레벨1의 전체 재료수는 빵1 + 패티3 + 빵1 = 5이고, 패티수는 3이다. 레벨2의 전체 재료수는 빵1 + (빵1 + 패..
https://www.acmicpc.net/problem/16931 16931번: 겉넓이 구하기 크기가 N×M인 종이가 있고, 종이는 1×1크기의 칸으로 나누어져 있다. 이 종이의 각 칸 위에 1×1×1 크기의 정육면체를 놓아 3차원 도형을 만들었다. 종이의 각 칸에 놓인 정육면체의 개수가 주어 www.acmicpc.net -문제해설 3x3일 경우 종이 하나에 쌓이는 도형의 겉넓이를 구한다. (1, 1)종이 위에 한 개의 정육면체가 쌓이면 겉넓이는 6 (1,2) 종이 위에 두 개의 정육면체가 쌓이면 겉넓이는 2+2*4=10 이렇게해서 각 종이위에 쌓이는 정육면체의 겉넓이를 모두 구한다. 그리고 겹치는 겉넓이를 모두 빼주면 된다. 아래 그림 참고 -자바 package implementation; impor..
https://www.acmicpc.net/problem/12871 12871번: 무한 문자열 첫째 줄에 s, 둘째 줄에 t가 주어진다. 두 문자열 s와 t의 길이는 50보다 작거나 같은 자연수이고, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net -문제해설 문자열 s와 t를 입력받고 두 문자열을 같은 길이가 될 때까지 문자열을 늘린다음 비교해서 같으면 1 다르면 0을 출력하는 문제이다. 두 문자열의 길이를 같게해야되기 때문에 최소공배수까지 문자열을 늘리면 되는데 파이썬에서는 그냥 서로의 길이만큼 문자열을 곱해서 풀었다. 자바랑 파이썬 코드 길이 너무 심한거 같다..... 갓 파이썬 -자바 package string; import java.io.BufferedReader; import ja..
-문제해설 총감독관은 무조건 한명 배치되고 총감독관이 커버하지 못하는 나머지 학생수에 대해서 부감독관이 커버해야 된다. 그래서 총감독관이 감시할 수 있는 학생수는 처음에 빼고 시작한다. 남은 학생수는 부감독관이 감시할 수 있는 학생수로 나누는데 이때 나머지가 있으면 학생수/부감독관 감시수 + 1 나머지가 없다면 학생수/부감독관 감시수 를 해준다. -자바 package math; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTok..