본문 바로가기

알고리즘

(63)
[JAVA]백준_19563_개구리1 문제 : https://www.acmicpc.net/problem/19563 19563번: 개구리 1 좌표평면의 원점 위에 개구리가 한 마리 있다. 개구리는 한 번 점프할 때마다 인접한 네 칸 중 하나로 이동한다. 예를 들어, 초기에 개구리가 원점 $O(0, 0)$ 위에 있다면, 개구리는 한 번 점프한 뒤 www.acmicpc.net 문제 유형 : 구현? 풀이 방식 : 홀수번 일때와 짝수번 일때를 나눠서 생각해야됨 ex) (3,4) 지점을 c=7, 9, 11, 13 ...갈수있고 짝수일때는 못감 소스코드 package BOJ; import java.io.*; import java.util.*; public class BOJ_19563_개구리1_Main { public static void main(Str..
[JAVA]프로그래머스_2020 KAKAO BLIND RECRUITMENT_좌물쇠와열쇠 문제 : https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 문제 유형 : 시뮬레이션 풀이 방식 N = Lock 사이즈 M = Key 사이즈 Key 배열, Lock 배열, Map 배열 (1) Lock 을 9개 만든다 생각하고 가운데에는 Lock정보를 입력 (Lock의 0의갯수 카운트, 0자리에 2를넣어줌) => M+M+N사이즈로 했었는데 M은 항상 N이하이므로 3N으로 해야됨 (2) key배열을 90도 회전하는 메소드를 만든다. (3) Map 배열 0행 0열 부..
[JAVA]백준_1463_1로만들기 문제 : https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 유형 : 다이나믹 프로그래밍 풀이 방식 : 다이나믹 프로그래밍이라고 적혀있었지만 간단한 BFS로 구현으로 풀었습니다 문제에서 주어진 연산 3가지를 조건으로 큐에 넣었슴돠 소스코드 package BOJ; import java.io.*; import java.util.*; public class BOJ_1463_1로만들기_Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedRea..
[JAVA] 부분집합(SubSet) 구현 - 비트마스크 부분집합 비트 연산을 사용하여 부분집합 구현 방법 arr[] = 1부터 5까지 담겨있는 배열 n = 5 (배열 사이즈) Step 1. i - for문 : (1
[JAVA]백준_9375_패션왕 신해빈 문제 : https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 문제 해빈이는 패션에 매우 민감해서 한번 입었던 옷들의 조합을 절대 다시 입지 않는다. 예를 들어 오늘 해빈이가 안경, 코트, 상의, 신발을 입었다면, 다음날은 바지를 추가로 입거나 안경대신 www.acmicpc.net 문제 유형 : 해시를 사용한 집합과 맵 풀이 방식 (1) 소스코드 1 부분집합의 경우를 구하여 조건(똑같은 종류가 있을 경우 제외)을 주어서 구현 => 메모리초과 (2) 소스코드 2 경우의 수를 생각 옷의 이름에 상관없이 옷의 종류의 개수만 보면 경우의 수를 계산할 수 있다 공식 = (같은 종류의 의상수 + 1) * (같은 종류의 의상 수 + 1) * ... * (같은 종류의 의상 수 +..
[JAVA]백준_1722_순열의순열 문제 : https://www.acmicpc.net/problem/1722 1722번: 순열의 순서 첫째 줄에 N(1≤N≤20)이 주어진다. 둘째 줄의 첫 번째 수는 소문제 번호이다. 1인 경우 k(1≤k≤N!)를 입력받고, 2인 경우 임의의 순열을 나타내는 N개의 수를 입력받는다. N개의 수에는 1부터 N까지�� www.acmicpc.net 문제 유형 : 구현 풀이 방식 : N이 20까지이므로 순열을 사용하면 시간초과가 나는 문제 factorial을 사용하여 경우의 수를 따져보는 문제 구현 중 코드가 몇번 꼬여 알박씨의 코드를 참조하였습니다. 소스 코드 package BOJ; import java.io.BufferedReader; import java.io.IOException; import java...
[JAVA]백준_19564_반복 문제 : https://www.acmicpc.net/problem/19564 19564번: 반복 muse가 입력하고자 하는 글 $S$가 주어진다. 이 글은 알파벳 소문자만으로 이루어져 있으며, 길이는 $L$이다. ($1 \le L \le 10^5$) www.acmicpc.net 문제 유형 : 문자열 풀이 방법 : 입력 문자열의 문자들이 증가하는 형식이 아니면 하나씩 카운트 소스 코드 package BOJ; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BOJ_19564_반복_Main { public static void main(String[] args) thro..
[JAVA]백준_18511_큰 수 구성하기 문제 : https://www.acmicpc.net/problem/18511 18511번: 큰 수 구성하기 첫째 줄에 N, K의 원소의 개수가 공백을 기준으로 구분되어 자연수로 주어진다. (10 ≤ N ≤ 100,000,000, 1 ≤ K의 원소의 개수 ≤ 3) 둘째 줄에 K의 원소들이 공백을 기준으로 구분되어 주어진다. 각 www.acmicpc.net 문제 유형 : 브루트포스, 재귀 풀이 방식 : - 조건을 하나하나 따지면서 재귀로 풀어도 가능하지만 간단한 재귀로 푸는 방법을 다른 닝겐 소스를 참조해서 풀었음 Step 1. 먼저 입력 K 원소들을 정렬 Step 2. 재귀 함수로 0부터 시작하여 K의 원소들 중 큰 걸 넣어가면서 비교 now가 입력 값 N보다 크면 return, 작으면 비교 후 최대값 갱..