목록데이터 엔지니어링 정복 (375)
지구정복
https://www.acmicpc.net/problem/1037 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net -문제해설 처음에 입력받은 약수들을 반복문 돌리면서 최소공배수를 구하면되는 건가 했지만 최소공배수가 원래의 값과 다를 수 있는 경우가 있다. 예를 들면 32의 경우 입력되는 약수는 2 4 8 16 인데 여기서 최소공배수는 16이 되어버린다. 그래서 고민하다가 그냥 입력받은 약수 중에서 최소값과 최대값을 곱해버리면 원래의 값이 되기 때문에 이를 이용해서 구현했더니 정답이었다 ㅎ 32의 경우 ..
https://www.acmicpc.net/problem/4375 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net -문제풀이 맨 처음에 뭔 소린가 싶었다.. 문제를 정리해보면 2와5로 나누어 떨어지지않는 n이 주어졌을 때, 1로만 이루어진(1, 11, 111, 1111,.... ) n의 배수 중 가장 작은 값의 자리수를 출력하는 문제이다. 또한 여러 개의 테스트케이스가 주어진다고 했으므로 테스트케이스가 계속 입력될 수 있도록 코드를 구현해야 한다. n이 3일 경우 111이 1로만 이루어진 3의 가장 작은 배수이다. 따라서 3자리이므로 답은 3이다. n이 7일 경우 11..
https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1의 세 값 중 하나가 저장되어 있다. 우리는 이 행렬을 적절한 크기로 자르려고 하는데, 이때 다음의 규칙에 따라 자르려고 한다. www.acmicpc.net -문제해설 https://st-lab.tistory.com/235 위 블로그 내용 참고 전형적인 분할정복 문제인데 분할정복을 for문을 이용해서 하려다가 구현하지 못해서 다른 분의 블로그를 참고해서 그냥 반복문 사용을 하지 않고 풀었다. ㅎㅎ 먼저 처음의 종이의 (0, 0)의 값과 전체값이 똑같은지 확인하기 위해 colChk() 메소드를 통해서 확인하고 같은 경우 -1, 0, 1 중에 ..
https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net -문제해설 아래 블로그를 참고했다. https://st-lab.tistory.com/148 입력되는 식에서 가장 최솟값을 만들기 위해서는 덧셈 식을 먼저 계산하고 해당 덧셈값을 빼주면 된다. 이렇게 되면 가장 큰 값을 빼게 되므로 최솟값이 나오게 된다. 따라서 먼저 -로 식을 분리한다. -로 분리된 식에서 +로 또 분리한다. +로 분리된 식을 모두 더한다. (tmp에 저장) 최종결과값이 mi..