Problem Solving

https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new B..
https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static int n; public static String[][] garoChange(String[][] map, int i, int j){ String[][] copyMap = new String[n][n]; for(int k=0; k
https://www.acmicpc.net/problem/11068 11068번: 회문인 수 어떤 수를 왼쪽부터 읽어도, 오른쪽부터 읽어도 같을 때 이 수를 회문인 수라고 한다. 예를 들어, 747은 회문인 수이다. 255도 회문인 수인데, 16진수로 표현하면 FF이기 때문이다. 양의 정수를 입력 www.acmicpc.net 처음에는 숫자범위인 1,000,000만큼의 배열을 만들어서 풀이하려 했으나 시간초과가 일어나 각 입력받을 때마다 계산을 해주었다. 생각해보니 입력수가 1,000,000번 이하라면 굳이 배열을 다 만들어서 미리 계산해둘 필요가 없을 듯하다. 숫자의 범위가 작을 때 이러한 방법을 써야겠다. import java.util.*; import java.io.*; public class Mai..
https://www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new Buff..
진수 변환: Integer.toString(숫자, 변환할 진수) 다시 10진수로 변환: Integer.parseInt(n진법 숫자 문자, 몇진법으로 되어 있는 수인지) 주의점: 라이브러리 사용시 36진법까지만 지원함 그 이상은 직접 구현해야함 참고) https://yunzae.tistory.com/372 (36진법을 넘어간다면 굳이 문자열로 바꾸지 않아도 되는 경우가 있다. 자릿수만큼 배열을 만들고 나머지를 저장하는 방식도 고려해보면 좋다. BOJ11068 회문인수 https://www.acmicpc.net/problem/11068 11068번: 회문인 수 어떤 수를 왼쪽부터 읽어도, 오른쪽부터 읽어도 같을 때 이 수를 회문인 수라고 한다. 예를 들어, 747은 회문인 수이다. 255도 회문인 수인데, ..
char[] character = new char[]{'1','2','3'}; int[] numbers = {1, 2, 3, 4, 5}; String[] names = {"John", "Jane", "Bob"}; 어떤 방식이든 된다.
https://www.acmicpc.net/problem/10448 10448번: 유레카 이론 프로그램은 표준입력을 사용한다. 테스트케이스의 개수는 입력의 첫 번째 줄에 주어진다. 각 테스트케이스는 한 줄에 자연수 K (3 ≤ K ≤ 1,000)가 하나씩 포함되어있는 T개의 라인으로 구성되어 www.acmicpc.net 삼각합만 기록해둘 것이 아니라 합의 가능 유무도 기록해둔다면 테스트개수에 상관없이 답을 낼 수 있다. 어차피 완전탐색하면서 모든 값에 대한 가능성을 체크하기 때문에 사전작업을 모두 계산을 해놓는다면 시간복잡도가 일정하다. 또한 숫자 합을 하는 반복문을 여러개로 분리한다면 시간복잡도를 낮출 수 있다. 중간과정을 저장할 배열이 필요하다. import java.util.*; import jav..
int로 예시를 들면 int형은 4바이트이다. 1KB는 1024바이트이다. 1MB는 1024KB이다. 128MB = 128 * 1024KB = 128 * 1024 * 1024B = int형 128 * 1024 * 1024 / 4개 = 33554432개이다. 사실 1024로 계산하기가 까다로워서, 대충 1000이라고 놓고 계산하면 얼추 맞다. 정수의 범위의 갯수가 대략 3천만개이하라면 정수의 수만큼 배열을 만들어 놓고 연산하여 시간복잡도를 낮추는 방법을 고려할 수 있다.
윤재에요
'Problem Solving' 카테고리의 글 목록 (13 Page)