본문 바로가기

자바9

2775 : 부녀회장이 될테야 https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 누가 이거 제목 보고 웃으라고 했습니까 대답합니다 자 오늘은 부녀회장이 될 시간이다. 아파트 짱 먹는거지 원리 자체는 Dynamic Programming이다 한칸씩 한칸씩 계산해서 최종적으로 우리가 원하는 호수의 인원을 세는 것으로 Memoization 기법을 이용하면 쉽게 풀 수 있다. 201호이면 101호 202호이면 101호 + 102호 203호이면 101호 + 102호 + 103호 이런 식이다 자, 그렇다면 203호를 구하고자 할.. 2023. 3. 30.
1620 : 나는야 포켓몬 마스터 이다솜 https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 자 이번 문제의 해결법을 설명해보자. 이 문제는 입력으로 받을 갯수와 출력을 해야할 갯수가 나눠져 있다. N개의 각기 다른 입력이 문자로 들어오기에 Hash라는 자료구조를 사용해야 한다. Hash도 별도의 공간을 할애해서 쓰는 기회를 가져야겠다. 문제 자체는 어렵지 않지만, 읽는 데 굉장한 시간을 할애했다.. ㅡㅡ 문제낸 사람 나와 출제자 나와 읽을 문제가 너무 길어요.. 2023. 3. 24.
11723 : 집합 https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 이번 문제는 집합이다. 수학의 집합을 떠올리면 쉬운데, 어떤 집합에 우리가 원소를 추가하고 제거하는 작업이라고 생각하면 쉽다. 다만 집합이라고 하는 개념을 잠깐 살펴볼 필요가 있긴 한데, (곧 작성할 예정이다...) STL의 구현 형태의 문제이다. 6개의 집합 사용 방법이었는데, 진짜 별로 설명할 부분이 없다. import java.util.*; import java.io.*; public class Main { public sta.. 2023. 3. 22.
1676 : 팩토리얼 0의 갯수 https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 자 이번엔 쉬운 문제다 문제를 보면 해당 팩토리얼을 했을 때 뒤에서부터 0이 아닌 갯수를 찾는 것이다. 2의 갯수, 5의 갯수, 10의 갯수를 카운트해서 그 수만큼 올리면 된다. 끝 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { // TODO Auto-generated method.. 2023. 3. 22.
3273 : 두 수의 합 https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 이번에 개인적인 알고리즘 공부를 하면서 두수의 합을 구할 때 공간 복잡도를 포기하고 시간복잡도를 끌어올리는 방식으로 O(N)까지 끌어올릴 수 있는 방식을 배웠다 해당 알고리즘은 두 수의 합에서 지나간 배열의 원소를 기록해놓는 방식이다 우리가 일반적으로 생각하는 방식은 O(n^2)의 방식이다. 이중 for문을 사용하여 하나하나 원하는 값을 대조.. 2023. 3. 6.
2941 : 크로아티아 알파벳 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 크로아티아 알파벳 문제이다 여기서 나는 우선 입력을 받은 후, 문자열에서 하나씩 해당 문자열을 지워가는 방식으로 문제를 풀어보았다. 이를 위해서 String.replace(읽을 문자열, 대체 문자열) 메소드를 사용했다 while의 조건식을 String.Contains(문자열)메소드로 각 크로아티아 알파벳이 포함되어 있는지를 확인해서 확인시 그 문자열을 지우고 .. 2023. 3. 5.
반응형