본문 바로가기

1Day 1Algo

[백준/BOJ] 2122번 : 센서 - Java(자바) https://www.acmicpc.net/problem/2212 2212번: 센서 첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있 www.acmicpc.net import java.io.*; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStre.. 더보기
[백준/BOJ] 14620번 : 꽃길 - Java(자바) 완전탐색 문제에 대한 연습이 필요하다고 생각했다. 그래서 여러 문제를 찾아보던 중, 재밌어 보이는 문제를 발견했다. 바로 꽃길. 이렇게 그래픽으로 예제를 보여주는 문제는 왠지 더 흥미진진하게 느껴진다. https://www.acmicpc.net/problem/14620 14620번: 꽃길 2017년 4월 5일 식목일을 맞이한 진아는 나무를 심는 대신 하이테크관 앞 화단에 꽃을 심어 등교할 때 마다 꽃길을 걷고 싶었다. 진아가 가진 꽃의 씨앗은 꽃을 심고나면 정확히 1년후에 꽃이 피므 www.acmicpc.net 처음 문제를 보고 떠오른 풀이는 아래와 같다. 그리고 이를 구현하였다. import java.io.*; import java.util.*; class Seed { int x, y, price; p.. 더보기
[백준/BOJ] 1931번 : 회의실 배정 - Java(자바) https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 그리디 알고리즘을 사용하는 문제이다. 정렬을 생각하지 않고, 바로 그리디하게 풀었다 import java.io.*; import java.util.StringTokenizer; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; int n = Integer.parseIn.. 더보기
[백준/BOJ] 9020번 : 골드바흐의 추측 - Java(자바) https://www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net 문제의 요구사항을 살펴보자. (1) 중복이 허용되고 (2) 값 차이가 가장 작은 (3) 두 소수를 사용하여 (4) N을 조합하기 이다. (3)과 (4)을 위해, N 이하의 소수들이 필요하다. 그래서 효율적으로 소수를 구할 수 있는 에라토스테네스의 체를 이용하기로 결심했다. 그런데 에라토스테네스의 체는 소수가 아닌 수까지 들어가 있다. public static int[] getE.. 더보기
[1Day 1Algo] 백준 3986번 좋은 단어 (JAVA) https://www.acmicpc.net/problem/3986 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net  처음 봤을 때는 문자열 조작 문제로 생각했다. 그래서 일단 문제에서 원하는 패턴을 여러가지 생각해보았다. 가장 간단한 패턴으로 AABB / BBAA와 ABBA / BAAB 를 생각했다. 이 둘의 조합을 사용하여 ABAABA / BABAABABAA 와 같은 패턴을 만들어낼 수 있었다. 패턴을 가만히 살펴보니, 자료구조에서 배웠던 postfix, infix expression이 떠올랐다. 이는 stack을 .. 더보기
[1Day 1Algo] 백준 1065번 한수 (JAVA) N이 1000보다 작다는 조건을 이용하면, if문을 통해 비교적 쉽게 구현할 수 있는 문제이다. 그러나 1000 이상의 숫자도 적용가능한 코드를 작성하고 싶었다. 그래서 문자열 인덱싱을 사용하여 코드를 작성하였다. import java.io.*; public class Main { public static boolean hansu(int n) { int prev = n % 10; int gongcha = prev - ((n / 10) % 10); // 문자열 인덱싱 방식 String st = Integer.toString(n / 10); for (int i = st.length() - 1; i >= 0; i--) { int val = (st.charAt(i) - '0'); if (gongcha != pr.. 더보기