분류 전체보기

    [BJ] 백준 2635 수 이어가기 (JAVA)

    [BJ] 백준 2635 수 이어가기 (JAVA)

    문제 https://www.acmicpc.net/problem/2635 풀이 방법 첫 번째 수를 입력으로 받고 두번째 수를 선택한 뒤 세번째 부터는 앞에 두 개의 숫자를 빼면서 하나씩 새로운 수를 만들어가는 문제이다. 1. N 부터 1 까지 하나씩 두번째 수로 선택 한다. 2. 음수가 나올때까지 while문에서 세번째 수 부터 하나씩 만들면서 list에 추가한다. 3. 하나의 list가 만들어질 때마다 최대 크기를 비교해서 업데이트하고, 업데이트가 되는 경우엔 배열도 같이 복사해준다. 3. 마지막엔 최종적으로 max에 담겨있는 개수와 list를 출력해줬다. 제출 코드 import java.io.*; import java.util.*; public class BJ_2635_수이어가기 { public sta..

    [Github] ReadMe 리드미 꾸미기 (및 매우 소소한 팁들)

    [Github] ReadMe 리드미 꾸미기 (및 매우 소소한 팁들)

    그동안 하고 싶었던 깃허브 리드미를 드디어 간단하게 꾸며봤다. 나도 여러개의 블로그를 보면서 꾸민거라서 수정할 때 언제든지 볼 수 있도록 정리하려고 한다. 우선 리드미를 꾸미기 전에 가장 먼저 해야하는게 있다. 레포지토리 만들기 내 깃허브에 들어갔을 때 나의 readme가 보이기 위해서는 레포지토리를 생성하고 그 안에 리드미 파일에서 작업을 해줘야한다. 1. new 클릭 이제 본인의 깃허브 아이디와 동일하게 입력한다. 주황색 박스에 있는 것이 내 깃허브 아이디이므로 빨간 박스에도 동일하게 입력해준다. 나는 이미 만들어져있기 때문에 존재한다고 뜨고 있다. 그러면 이제 밑에 파란 박스에 고양이가 ✨special✨ repository 라고 소개해준다! 또한 밑에 두 개를 모두 체크 해주고 밑에 초록색 박스의 ..

    [BJ] 백준 2304 창고 다각형 (JAVA)

    [BJ] 백준 2304 창고 다각형 (JAVA)

    문제 https://www.acmicpc.net/problem/230 풀이 방법 여러개의 기둥들이 있고, 그 위에 지붕을 만드는 문제이다. 문제의 포인트는 오목한 부분이 없어야하는 것이다. 그래서 나는 가장 높은 기둥을 찾고, 그 전과 후를 따로 계산했다. 우선 기둥들의 정보를 저장하고 정렬할 때 필요한 compareTo 함수를 재정의 해줬다. 기둥들의 순서가 순차적으로 들어오지 않기 때문에 정렬을 사용했다. 가장 높은 기둥을 기준으로 앞부분에서는 현재 기둥보다 더 높은 기둥이 올 때만 값을 더해주고 뒷부분은 끝에서부터 오면서 더 높은 기둥이 올 때만 값을 더해주는 식으로 구현했다. 제출 코드 import java.io.*; import java.util.*; public class BJ_2304_창고다..

    [BJ] 백준 15683 감시 (JAVA)

    [BJ] 백준 15683 감시 (JAVA)

    문제 https://www.acmicpc.net/problem/15683 풀이 방법 cctv의 종류에 따라서 탐색해야하는 방향이 다른 문제이다. cctv가 탐색할 수 있는 공간을 다 탐색 후 cctv가 탐색하지 못한 사각지대를 찾아내면 된다. 복잡하긴 하지만 정리해서 구현만 한다면 그렇게 어렵지는 않은 문제다. 1. 클래스를 하나 만들어서 cctv의 종류에 따라서 탐색해야하는 인덱스를 미리 저장해놨다. 2. cctv의 종류에 따라서 방향이 다르기도 하지만 탐색 횟수도 다르다는걸 주의해야한다. ex) 1번은 90씩 회전해서 4번 탐색이 가능하지만, 2번은 2번만 탐색한다. 3. 탐색을 하면 나는 #으로 배열을 변경해줬고, 나중에 사각지대를 계산할 때는 0인 것들을 찾아서 카운팅 한 후 출력해줬다. 제출 코..

    [BJ] 백준 1244 스위치 켜고 끄기 (JAVA)

    [BJ] 백준 1244 스위치 켜고 끄기 (JAVA)

    문제 https://www.acmicpc.net/problem/1244 풀이 방법 스위치의 상태를 바꿔주는 문제이다. 여학생인지 남학생인지 판단 후에 남학생이라면 해당 번호의 배수에 해당하는 인덱스를 가진 스위치를 토글해주고, 여학생이라면 해당 번호의 스위치를 우선 변경 후 , -1 +1를 위치에 있는 스위치가 같은지 여부를 판단 후, 같다면 토글해주고 같지 않다면 토글하지 않는 식으로 구현했다. 제출 코드 import java.io.*; import java.util.*; public class BJ_1244_스위치켜고끄기 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(..

    [BJ] 백준 10026 적록색약 (JAVA)

    [BJ] 백준 10026 적록색약 (JAVA)

    문제 https://www.acmicpc.net/problem/10026 풀이 방법 나는 DFS를 사용해서 풀었다. 아직 탐색을 안한 곳을 만나면 범위 카운트 변수에 1를 더해주고 DFS를 시작했다. 적록색약이 아닌 사람은 R, G ,B 모두 구별해서 탐색을 해줬고, 적록색약이라면 ch가 R or G일 때는 R or G 이면 탐색을 하도록 구현하였다. 제출 코드 import java.io.*; public class BJ_10026_적록색약 { static int[][] move= {{-1,0},{1,0},{0,-1},{0,1}}; static char[][] map ; static boolean[][] visitedN; static boolean[][] visitedG; static int N; pub..

    [BJ] 백준 2669 직사각형 네 개의 합집합의 면적구하기 (JAVA)

    [BJ] 백준 2669 직사각형 네 개의 합집합의 면적구하기 (JAVA)

    문제 https://www.acmicpc.net/problem/2669 풀이 방법 나는 단순하게 생각했다. 직사각형 좌표를 입력받고, arr을 돌면서 직사각형 범위안에 있다면 arr의 값을 1로 변경해줬다. 모든 사각형을 돌고나서, 마지막에 arr에 1의 개수를 세어서 출력해줬다. 제출 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BJ_2669_직사각형네개의합집합의면적구하기 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(ne..

    [BJ] 백준 1759 암호만들기 (JAVA)

    [BJ] 백준 1759 암호만들기 (JAVA)

    문제 https://www.acmicpc.net/problem/1759 풀이 방법 골드 문제 치고는 간단한 듯 싶었다. 더 효율적인 방법이 있겠지만 나는 제일 먼저 떠오르는 방법으로 구현했다. 1. 주어진 문자들 중에서 L개를 뽑는 조합을 먼저 구하고 2. 완성된 조합을 가능성이 있는지 판단하는 순서로 구현했다. 제출 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.StringReader; import java.util.Arrays; import java.util.StringTokenizer; public class BJ_1759_암호만들기 { public..

    [BJ] 백준 1260 DFS와 BFS (JAVA)

    [BJ] 백준 1260 DFS와 BFS (JAVA)

    문제 https://www.acmicpc.net/problem/1260 풀이 방법 각 인접 정보를 저장한 후, DFS, BFS로 출력해주면 되는 간단한 문제이다. DFS는 재귀호출로 BFS는 큐를 사용했다. 제출 코드 public class BJ_1260_DFS와BFS { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int M = Inte..