백준 5

백준 1890번 - 동전 0

나의 풀이. 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다. 최소 값을 만들려면 동전을 큰 단위부터 비교해 k보다 작거나 같은 동전이 나오면 동전 갯수 += k / 동전 단위; 남은 금액(k) = k % 동전 단위;를 반복해 준다. package day028; import java.util.Scanner; public class ACMICPC11047 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int cnt = 0; // 동전 갯수 int[] arr = new int[n]; for (int i = 0; i < ..

CODING TEST 2023.05.30

백준 2003번 - 수들의 합2

나의 풀이. 이 문제는 투 포인터로 풀어보라는 힌트가 있었기에 for - loop을 사용하지 않고 풀어보고 사실 아직 알고리즘에 대한 이해가 낮아 기존 학습했던 코드를 참고 삼아 이해하려 하며 다시 풀어보았다. 투 포인터(Two Pointers)는 배열에서 두 개의 포인터를 사용해서 원하는 결과를 얻는 방법으로 두 개 포인터의 배치 방법은 - 같은 방향에서 시작: 첫번째 원소에 둘다 배치 - 서로 다른 방향에서 시작 : 첫번째 원소와 마지막 원소에 배치 이번 문제는 같은 방향에서 시작하는 방법으로 작성해보았다. 아직은 많이 어렵다. 이해하도록 노력하자. import java.util.Scanner; public class SumOfNumbers2003 { public static int twoPointe..

카테고리 없음 2023.05.29

백준 2167번 - 2차원 배열의 합

나의 풀이. 처음에 문제를 봤을 때 경로에 대한 합이라고 해서 그 앞에 모든 길을 지나야 접근해 더해준다고 생각했는데 예제 1의 마지막 줄이 음? 아닌데 해서 다시 생각해보니 인덱스 증가에 따른 합을 구해주면 되는 문제였다. 가령 i, j , x, y -> 1, 1, 2, 3 이면 [1][1], [1][2], [1][3], [2][1], [2][2], [2][3] 을 더해주면 된다. 모든 2차원배열의 합이므로 63이 나온다. 1, 2, 1, 2 일 경우에는 [1][2], [1][2] 변함이 없기에 하나의 값만 더해준다. 1, 3, 2, 3 일 경우에는 [1][3], [2][3] 만 더해주면 되서 36이 나온다. 그려가면서 한 40분 고민했던거 같다.... import java.util.Scanner; p..

CODING TEST 2023.05.29

백준 1254번 - 팰린드롬 만들기

나의 풀이. 처음에 접근했을 때 단순하게 문자열 마지막 앞부터 역으로 추가하면서 리버스 한 값이 맞으면 응 팰린드롬이야 라고 생각해서 어찌어찌 코드짜서 예제 3번까지는 성공했으나 마지막 예제 4번에서 거의 두배보다 안되는 수가 계속 나오면서 아 틀린거구나 했다. 도저히 생각이 안나서 다른 분 풀이를 참고 했고 이해하니 충분히 풀 수 있었을텐데 하는 아쉬움은 사실 크게 안들었고 아직 멀었구나 하는 생각은 많이 들었다. 예제 2번을 예로 보면 입력된 문자열 "qwerty" 을 보면 qwerty, 0번째 인덱스부터 문자열 끝까지 -> 팰린드롬인지 아닌지 확인 werty, 1번째 인덱스부터 문자열 끝까지 -> 팰린드롬인지 아닌지 확인 erty, 2번째 인덱스부터 문자열 끝까지 -> 팰린드롬인지 아닌지 확인 끝까..

CODING TEST 2023.05.29

백준 5613번 - 계산기 프로그램

나의 풀이. 조건문을 사용해 풀 수 있는 문제였는데 스캐너의 nextInt()에 개행문자가 포함되어 에러를 .. nextLine() 으로 받고 항변환 해주는 것으로 해결 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int firstNum = Integer.parseInt(sc.nextLine()); int result = firstNum; String operator = sc.nextLine(); while (!operator.equals("=")) { int nextNum = Integer.parseInt(sc.nextLine(..

CODING TEST 2023.05.22