백준 47

[백준] 11653번 자바 소인수분해

문제 출처 https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 접근 방식 및 풀이 - 2부터 1씩 증가하면서 나눈다. 3,4 하나씩 증가하면서 나누게 되는데, 4로 나눠지는 숫자는 2에서 처리됬으므로 i++로 해도 상관없다. 소스 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int i=2; while (n >= i){ if(n%i == 0){ Sys..

[백준] 7576번 토마토

문제 출처 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토들의 정보가 주어진다. 즉, 둘째 줄부터 N개의 줄에는 상자에 담긴 토마토의 정보가 주어진다. 하나의 줄에는 상자 가로줄에 들어있는 토마토의 상태가 M개의 정수로 주어진다. 정수 1은 익은 토마토, 정수 0은 익지 않은 토마토, 정수 -1은 토마 www.acmicpc.net 접근 방식 및 풀이 BFS활용.. 너무너무 어렵다.!ㅜ 직접 그려가면서 이해했습니다. # BFS 구현 과정 소스 코드 impor..

[백준] 1976번 그래프

문제 출처 https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n번째 줄까지 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연결하는 두 노드 중 부모 노드의 번호를 나타내고, 두 번째 정수는 자식 노드를, 세 번째 정수는 간선의 가중치를 나타낸다. 간선에 대한 정보는 부모 노드의 번호가 작은 것이 먼저 입력되고, 부모 노드의 번호가 같으면 자식 노드의 번호가 작은 것이 먼 www.acmicpc.net 접근 방식 및 풀이 소스 코드 import java.io.IOException; import java.util.ArrayL..

[백준] 2751번 자바 퀵소트

문제 출처 접근 방식 및 풀이 - 여기서 중요한건 scanner -> bufferedreader 사용이다. 이런 정렬문제에서는 처리속도가 너무 중요한데 시간을 줄이기 위해선 bufferedreader를 사용한다.( 두 타입의 시간차는 6배 정도 bufferedreader가 더 빠르다고 한다.) - list로 바로 정렬하는 방법도 있지만, quicksort를 활용하였다. - quicksort를 제일 잘 설명해놓은 블로그인것 같다. 차근차근 읽으며 손코딩으로 겨우 이해했다. https://mygumi.tistory.com/308 퀵소트 알고리즘 :: 마이구미 이 글은 정렬 중 퀵소트(Quick Sort), 퀵정렬이라고 불리는 정렬을 다뤄본다. 누구나 한번쯤 들어봤고, 구현해본 정렬 중 하나이다. 빠른 정렬에..

[백준] 11650 자바 좌표정렬 2차원배열

문제 출처 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 접근 방식 및 풀이 - 2차원 배열에 넣어서, Arrays.sort 사용하였다. 범위가 크면 사용할 수 없지만 이 문제 범위안에서는 사용가능하다. 소스 코드 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(Stri..

[백준] 10814번 자바 array2차원배열

문제 출처 https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. www.acmicpc.net 접근 방식 및 풀이 - Map으로 해야하나 고민했지만, 같은 index가 들어오는 경우도 있기 때문에 2차원 배열로 해야한다. - 2차원 배열의 sort도 기억하기... 소스 코드 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System..

[백준] 10809번 자바

문제 출처 https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. www.acmicpc.net 접근 방식 및 풀이 10808번를 응용한 문제이다. [Algorithm/백준] - [백준] 10808번 자바 LIST - -1로 모든 초기화 하고, - 처음 나오면 index 를 입력하고, 두번째부터는 아무것도 하지 않고 지나간다. 소스 코드 import java.util.ArrayList; ..