본문 바로가기

알고리즘/백준

(87)
[문제] 백준 10250번 ACM 호텔 * 백준 단계별로 풀기 기본 수학 1 www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws NumberForm..
[문제] 백준 2869 달팽이는 올라가고 싶다 * 백준 단계별로풀어보기- 기본수학 1 편 * 출처: www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 엄청 쉽다고 생각했는데, 이 문제의 핵심은 시간 초과였다. 원래 풀려고 했던 방법은 아래와 같지만, 시간초과이다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main..
[문제] 백준 1193번 분수찾기 * 백준 단계별로 풀어보기 - 기본 수학 1편 * 출처: www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int ..
[문제] 백준 2292번 벌집 *출처: www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 처음에 문제를 어떻게 해결해야 할지 전혀 감을 잡지 못했었다. 알고리즘 초보자로서...이게 배열로 풀라는건지..그러기엔 무한대로 생성할 수도 없고,,,, 그래프로 풀기에는 개념을 잘 모르겠고.. 이래서 구글링해서 문제푸는 방법을 찾아봤다. 참고한 블로그: jhnyang.tistory.com/211 [ACM ICPC 기출, 백준 2292번] 벌집 문제 풀이 및 해설 (C++/Java 문제 풀기~) ACM-ICPC..
[문제] 백준 1316번 그룹 단어 체커 * 출처: 백준 단계별로 풀어보기- 문자열 편 그전에 풀었던 문제 중 pre_str, str를 이용해서 풀었다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String[] word = new String[n]; int sum = 0; for(int i=0;i
[문제] 백준 2908번 상수 * 백준 단계별로 풀어보기- 문자열 편 import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(answer(a,b)); } static int read(int n) { String s = Integer.toString(n); String a = ""; for(int i=s.length()-1; i>=0; i--) { // a += Character.toString(s.charAt(i)); a += s..
[문제] 백준 1152번 단어의 갯수 * 출처: 백준 단계별로 풀어보기- 문자열 편 소요 시간이 다른 사람들의 답안에 비해 길다. 우선적으로 스캐너를 그만 써야겠다. " "를 통해 split을 했는데, 맨 앞에 빈칸이 있을 경우 이거는 split이 안되는 걸 몰라서 if문에 추가했다. public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s = sc.nextLine(); String[] word = s.split(" "); int words = word.length; if(words>0 && word[0].equals("")) words--; System.out.println(words); } 아래 코드는 아스키코드 32가 공백, 10은 개행이라..
[문제] 백준 1152번 단어 공부 * 출처: 백준 단계별로 풀어보기- 문자열 편 이것 역시 구구절절 코딩해서 시간이 많이 소요됐다. 정답자 확인하니 소요 시간이 나의 1/4이다.. import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int alpha[] = new int[26]; int answer = 0; int howmany = 0; String s = sc.next().toUpperCase();//모든 문자 대문자화. int len = s.length(); int max = 0; for(int i=0;i