브루트포스

📖 문제 https://www.acmicpc.net/problem/4134   💡  풀이 방식• 브루트포스, 소수 판정 (에라토스테네스의 체). while문을 활용해 현재 숫자에서 1씩 키워보며 해당 숫자가 소수인지 확인한다.   - 해당 숫자가 소수인 경우 > 해당 숫자 출력   - 해당 숫자가 소수가 아닌 경우 >  +1해서 다음 숫자로 넘어가기   💥 유의사항- 입력받는 숫자 x의 범위를 넉넉하게 long형으로 잡는 것이 포인트!!  🔺 코드123456789101112131415161718192021222324252627282930313233343536373839import java.util.*;import java.io.*; public class Main {    public static..
📖 문제 https://www.acmicpc.net/problem/1027   💡  풀이 방식• 브루트포스, 기하학. 고층 건물이 보이기 위해서는, 두 지붕을 잇는 선분이 A와 B를 제외한 다른 고층 빌딩을 지나거나 접해서는 안 된다.→ A와 B를 이은 선분의 기울기를 구하고 이를 활용하여 문제를 풀 수 있다.선분의 기울기 구하는 공식: 건물 A와 B를 이은 선분의 기울기 = 건물A 높이 - 건물B 높이 / 건물 A와 B의 거리  - N개의 빌딩을 모두 둘며, 해당 건물에서 볼 수 있는 고층 건물의 수를 구한다. (브루트포스)  ㄴ 해당 위치의 왼쪽    부분을 탐색할 때는, 기울기가 감소해야 건물이 보인다.  ㄴ 해당 위치의 오른쪽 부분을 탐색할 때는, 기울기가 증가해야 건물이 보인다.   🔺 코..
📖 문제  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   💡  풀이 방식• 브루트포스 (구현)1. lock의 범위를 확장하고, 확장한 배열에  lock에 대한 정보를 입력한다.   - Why? 키의 일부가 자물쇠 영역을 벗어나더라도, 키로 자물쇠를 열 수 있으면 정답이 되기 때문.  - 그러므로 lock과 key가 겹칠 수 있는 모든 경우를 계산할 수 있을만큼 확장해야 한다.  - 🔔 key의 크기와 lock의 크기가 항상 같진 않다!   - 열쇠 이동거리 = 열쇠와 자물쇠가 처음 겹치는 부분 + 자물쇠의 크기     ⇒ 확장한 배열 : 자물쇠 크기..
📖 문제 https://www.acmicpc.net/problem/2531   💡  풀이 방식• 투 포인터1. 입력된 정보를 저장한다.  - int[N] sushi : 초밥 종류 저장 배열  - int[d+1] chk  :  초밥 각 종류가 몇 개 존재하는지 나타내는 배열 2. 투 포인터를 이용해 먹을 수 있는 최대 가짓수를 구한다.  1) 회전하지 않았을 때 초밥을 먹는다.  2)  N-1번 회전하며 탐색을 진행한다.      → [규칙] 처음 먹은 초밥은 제거하고, 마지막+1 번째 초밥은 추가한다.  🔺 코드12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152import java..
📖 문제 https://www.acmicpc.net/problem/12919   💡  풀이 방식• 재귀S에서 T를 만드는 재귀를 수행하는 게 아니고,T에서 문자열을 지우면서 S를 만드는 재귀를 수행하는 것이다.[재귀 함수]- (종료 조건) 첫 번째 문자열과 두 번째 문자열의 길이가 같고, 두 문자열이 같다면, 1을 출력한다. (같지 않다면 0을 출력한다.)- 두 번째 문자열의 마지막 글자가 A인 경우> 마지막 글자를 하나 뺀 값을 재귀함수의 인자로 갖고 가 재귀를 수행한다.- 두 번째 문자열의 맨 앞 글자가 B인 경우 > 맨 앞 글자를 하나 빼고, 뒤집은 값을 인자로 가져가 재귀를 수행한다.   🔺 코드123456789101112131415161718192021222324252627282930313..
📖 문제 https://www.acmicpc.net/problem/2304   💡  풀이 방식•  브루트포스 가장 높은 길이를 기준으로 왼쪽 부분과 오른쪽 부분으로 나눠 지붕을 메꾼다. 1. 기둥들의 위치와 높이를 입력받는다.2. 입력받은 기둥들의 정보를 위치 기준 오름차순 정렬한다.3. 가장 높은 기둥의 길이를 기준으로 왼쪽 부분에서 기둥이 커지는 구간의 면적만 계산한다. (맨 왼쪽 0부터 pivot까지)4. 가장 높은 기둥의 길이를 기준으로 오른쪽 부분에서 기둥이 작아지는 구간의 면적만 계산한다. (맨 오른쪽부터 pivot까지)5. 제일 큰 기둥의 높이를 더한다.   🔺 코드12345678910111213141516171819202122232425262728293031323334353637383..
📖 문제  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr    💡  풀이 방식• 브루트포스 두 직선의 교점 과표를 구해 2차원 배열에 표시한다.이 때 문제에서 제시한 공식을 활용한다!    💥 유의사항- A,B,C는 long 타입으로 풀기 (-10만 이상, 10만 이하의 정수이므로)  🔺 코드123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869import java.util.*..
📖 문제 https://www.acmicpc.net/problem/18429   💡  풀이 방식• DFS (조합)백트래킹으로 운동 키트 번호를 뽑는다. (중복 X)뽑은 운동 키트를 순서대로 돌면서, 중량이 모두 500 이상인 경우만 정답 +1을 한다.  🔺 코드1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556import java.util.*;import java.io.*; public class Main {    static int N,K,answer;    static int[] arr;    static boolean[] chk;    static ListInt..
📖 문제 https://www.acmicpc.net/problem/7490   💡  풀이 방식• 브루트포스 + 백트래킹 + 문자열 [DFS 함수]- 인자: now - 현재 탐색 중인 숫자의 위치 (1부터 시작) / num - 현재 숫자 / sign - 현재 숫자의 부호 (1이면 +, -1이면 -) / sum - 현재까지의 합계 / str - 현재까지의 연산식- 종료 조건: 수열의 맨 마지막 숫자 N에 도달했을 경우- 부호가 [공백이냐/+냐/-냐] 에 따라 재귀함수를 호출한다.   🔺 코드1234567891011121314151617181920212223242526272829303132333435import java.util.*;import java.io.*; public class Main {   ..
imname1am
'브루트포스' 태그의 글 목록