본문 바로가기

Algorithm

(3)
[백준 자바 2902번] KMP는 왜 KMP일까? 이 문제를 풀면서 계속 헷갈리던 charAt() 메서드에 대해 좀 더 이해할 수 있게 되었다. 처음에는 split() 메서드를 이용하여 풀었지만 charAt()을 써먹어보고 싶어서 다시 한번 더 시도를 하였다. 입력받은 문자열을 charAt()을 사용하여 쪼갠 문자를 정수로 받아 대문자만 추출해준다. (ASCII 65~90) 그 후 추출한 문자를 char 타입으로 형 변환하여 출력한다. 1. split() 사용 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); String [] arr ..
[백준 자바 2959번] 거북이 가장 작은 수 2개, 가장 큰 수 2개가 각각 가로/세로가 된다. 배열을 오름차순 정렬 해준 뒤 가로의 작은 수 * 세로의 작은 수를 구해주면 된다. import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int [] arr = new int [4]; for(int i=0;i
[백준 자바 2783번] 삼각 김밥 "삼각 김밥 Y그램 당 X원" 일 때 삼각 김밥 1,000그램 가격의 최저가를 구하는 문제이다. Y그램 당 X원이기 때문에 X/Y를 해주면 1그램 당 가격이 나오기 때문에 어렵지 않게 해결할 수 있다. 1,000그램 가격을 구한 후 배열에 넣고 오름차순 정렬 후 첫번째 인덱스를 뽑아내면 최저가를 구할 수 있다. 주의해야할 점은 출력을 소수점 둘째자리까지 나타내야하기 때문에 데이터타입에 신경을 써줘야한다. import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int x = sc.nextInt();..