코테

📖 문제 https://www.acmicpc.net/problem/1600   💡  풀이 방식• BFS필요 자료구조- 상하좌우 이동을 위한 4방향 배열 dx,dy- 말인 경우 대각선 8방향 이동을 위한 배열 hx, hy- 격자판 정보 저장할 2차원 int형 배열- 해당 좌표에서 방문 여부와 말 이동찬스 사용 횟수를 저장하는 3차원 boolean형 배열 ⇒ chk[세로][가로][말 이동찬스 사용 횟수]  1. 정수 K를 입력받는다.2. 가로 W와 세로 H를 입력받는다.3. 크기가 H*W 인 격자판의 정보를 입력받는다.4. 맨 왼쪽 위부터 맨 오른쪽 아래까지 최단 거리로 간다고 했으므로 맨 왼쪽 위에 있는 (0, 0)부터 BFS를 수행한다.  - 2차원 배열의 좌표 내 방문 여부 뿐만 아니라, 매 탐색마..
📖 문제 https://www.acmicpc.net/problem/2567  💡  풀이 방식• 구현1. 색종이 수를 입력받는다.2. 입력받은 색종이 위치의 행과 열에서 10 더한 부분(=정사각형 부분)까지를 1로 채운다.3. 흰색 도화지를 돌면서 현재 부분이 색종이가 붙은 부분(=1)이라면, 해당 지점에서 4방향을 탐색하며 격자 범위 내에 있고 주변이 0인 칸이거나, 격자 범위를 벗어난 값이라면 검은색 영역 부분으로 인식한다.  🔺 코드12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152import java.util.*;import java.io.*; public class Main..
📖 문제 https://www.acmicpc.net/problem/1417   💡  풀이 방식•  그리디 - 우선순위 큐. 사람 수를 내림차순으로 정렬하는 우선순위 큐를 만들고, 득표 숫자들을 입력받는다.. 우선순위 큐를 돌면서 해당 후보의 득표 수가 다솜이 득표 수보다 크거나 같다면, 해당 후보의 득표 수를 1 감소시킨 후 큐에 새롭게 값을 추가한다. 그리고 다솜이의 득표 수를 +1하고, 정답도 +1한다.  🔺 코드1234567891011121314151617181920212223242526import java.util.*;import java.io.*; public class Main{    public static void main(String[] args) throws IOException ..
📖 문제 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/1935   💡  풀이 방식• 스택Double형을 저장하는 스택을 생성한다. 명령어를 순회하며 피연산자(알파벳에 해당하는 숫자)는 스택에 넣고 , 연산자가 나오면 스택에서 꺼내고 연산한 결과를 스택에 다시 넣는다.   🔺 코드123456789101112131415161718192021222324252627282930313233343536373839404142434445464748import java.util.*;import java.io.*; public class Main {    public static void main(String[] args) throws IOException {        BufferedReader br ..
📖 문제 https://www.acmicpc.net/problem/1027   💡  풀이 방식• 브루트포스, 기하학. 고층 건물이 보이기 위해서는, 두 지붕을 잇는 선분이 A와 B를 제외한 다른 고층 빌딩을 지나거나 접해서는 안 된다.→ A와 B를 이은 선분의 기울기를 구하고 이를 활용하여 문제를 풀 수 있다.선분의 기울기 구하는 공식: 건물 A와 B를 이은 선분의 기울기 = 건물A 높이 - 건물B 높이 / 건물 A와 B의 거리  - N개의 빌딩을 모두 둘며, 해당 건물에서 볼 수 있는 고층 건물의 수를 구한다. (브루트포스)  ㄴ 해당 위치의 왼쪽    부분을 탐색할 때는, 기울기가 감소해야 건물이 보인다.  ㄴ 해당 위치의 오른쪽 부분을 탐색할 때는, 기울기가 증가해야 건물이 보인다.   🔺 코..
📖 문제 https://www.acmicpc.net/problem/16967   💡  풀이 방식• 구현배열을 그려봤을 때 겹치는 부분과 안 겹치는 곳의 패턴을 파악하는 것이 핵심이다.  🔺 코드12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import java.util.*;import java.io.*; public class Main {    public static void main(String[] args) throws IOException {        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)..
📖 문제  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   💡  풀이 방식• 브루트포스 (구현)1. lock의 범위를 확장하고, 확장한 배열에  lock에 대한 정보를 입력한다.   - Why? 키의 일부가 자물쇠 영역을 벗어나더라도, 키로 자물쇠를 열 수 있으면 정답이 되기 때문.  - 그러므로 lock과 key가 겹칠 수 있는 모든 경우를 계산할 수 있을만큼 확장해야 한다.  - 🔔 key의 크기와 lock의 크기가 항상 같진 않다!   - 열쇠 이동거리 = 열쇠와 자물쇠가 처음 겹치는 부분 + 자물쇠의 크기     ⇒ 확장한 배열 : 자물쇠 크기..
📖 문제 https://www.acmicpc.net/problem/11501   💡  풀이 방식• 그리디1. 주식 시세 정보를 저장한다.2. 주식 정보를 역방향으로 탐색하며 최대 이익 값을 갱신한다.   - Why? 오늘 이후 최대 이익을 낼 수 있는 날에 판매하기 위해   - 시간 복잡도 : O(N)3. 구한 최대 이익 값을 결과로 출력한다.  💥 유의사항- 앞에서부터 순방향으로 순회하며 구한다면, 시간 복잡도는 O(N^2)이고 시간 초과가 뜬다..   🔺 코드123456789101112131415161718192021222324252627282930313233343536373839import java.util.*;import java.io.*; public class Main {    publ..
imname1am
'코테' 카테고리의 글 목록