1. 문제 https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net 2. 설명 0에서 9까지의 숫자의 수를 담은 배열 numSet을 선언했다. 6과 9는 뒤집어서 사용할 수 있기 때문에 한 곳에 모았으며, (6에 모았다) 6을 2로 나눠주었다. 나머지가 있을 경우엔 한 세트가 더 필요하기 때문에 더해줬다. 그리고 int 배열로 선언해줬기 때문에 내림차순 정렬인 reverseOrder를 사용할 수 없어서, 그냥 오름차순 해주고 마지막 요소를 출력해줬다 ! 3. 코드 import java.io.BufferedReader; import java.i..
1. 문제 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 � www.acmicpc.net 2. 설명 문자열 앞과 뒤에 공백이 올 수 있기 때문에 입력받은 문자열을 trim 함수를 이용해 공백제거를 해준다. 그리고 공백 기준으로 split 해줬다. 그리고 입력이 ' ' (공백만 있을 경우)일 경우에도 고려해줘야 한다. 공백만 입력받을 경우를 생각을 못해서 틀렸었다. 3. 코드 import java.io.BufferedReader; import java.io.IOExce..
1. 문제 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 2. 설명 문자열 처리 파트의 문제. 정답 출력을 대문자로 하기 때문에 대문자로 캐스팅해줬다. 그리고 문자 하나씩 비교해서 maxAlpha를 구해갔다. 3. 코드 import java.util.StringTokenizer; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main ..
1. 문제 https://www.acmicpc.net/problem/1049 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net 2. 설명 묶음으로 구매할 때와 낱개로 구매할 때의 경우를 따로 집합에 삽입해 오름차순으로 정렬했다. 그리고 묶음으로 구매할 때 vs 낱개로 6개를 구매할 때를 비교해서 작은 값을 구했다. (minBundle) 정답의 경우 예를 들어, 14개를 구매할 경우, 3묶음(18)으로 구매할 경우와 2묶음(12) + 2개로 구매할 경우를 비교해 최솟값을 출력하도록 했다. 3. 코드 impor..
1. 문제 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1≤N≤100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 www.acmicpc.net 2. 설명 왜 그리디에 있는지 모르겠는 문제. 최대 중량을 구하는 것이라서 배열을 한번 순환했다. 문제를 읽어보면 해당 로프가 버틸 수 있는 최소 중량 * 로프 수 라는 식이 나온다. 그거 계산해서 최댓값 구하면 된다. 3. 코드 import java.util.Arrays; import java.util.StringTokenizer; import java.io.BufferedRea..
1. 문제 https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 문제 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 � www.acmicpc.net 2. 설명 점화식이 dp[n] = dp[n-1] + dp[n-5] 였다. 또한 n의 범위가 100까지이기 때문에 int형으로 dp를 선언하면 틀렸다고 나온다. 이부분은 항상 헷갈린당; 3. 코드 import java.util.StringTokenizer; import java.io.BufferedReader; import java.io.IOException; import java.io.I..
1. 문제 https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 2. 설명 하나씩 해보면서 규칙찾아서 풀었다. 짝수일 때는 그 전의 dp 2배에 +1을 해주어야 했고, 홀수일 때는 전의 dp 2배에 -1을 해주어야 했다. 규칙만 찾으면 쉽게 풀 수 있는 문제 3. 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(Syste..
1. 문제 https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 2. 설명 6번 틀리고 맞은 문제 ㅋㅋㅋㅋㅋㅋ 첫 접근으로 점화식을 dp[n] = dp[n-1] * 2 - 1 로 세웠었는데, 백준 채점기가 틀렸다고 답해주셨다. 다르게 규칙찾는 방법으로, 공간을 늘려서 자릿수를 n까지 늘려가면서 구하는 방식으로 풀었다. 정답을 1,000,000,000으로 나눈 나머지를 출력하라고 하는 부분에서도 막힌게 있었는데, 그 전에는 sum+=dp[n-1][i]를 하고 전체 값을 mod로 나눴었다. 하지만 위 코드와 값 하나하나를 mod로 나눈 값이랑 결과가 다르기 때문에 아..
- Total
- Today
- Yesterday