분류 전체보기

https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 문제풀이 1. R연산 구현 1-1. R연산 한 줄 씩 구현하는 함수 생성 (이중 정렬) 2. C연산 구현 2-1. C연산 한 줄 씩 구현하는 함수 생성 (이중 정렬) 3. 해당 위치를 확인하는 코드 구현 (범위 밖에 해당 위치를 처리하는 코드 구현 ) /* R 연산 구현 : 행 >= 열 세로 >= 가로 C 연산 구현 : 행 < 열 세로 < 가로 수를 정렬할 때 0을 무시한다. 런타임 ..
https://www.acmicpc.net/problem/19238 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net 문제풀이 1. 손님을 찾을 함수 생성 1 - 1. BFS를 활용 (car 클래스를 생성해 y,x,fuel 한 칸 이동할 때마다 fuel - 1 처리 / 처음 위치부터 탐색 시작) 1 - 2. 가장 작은 최단거리의 손님들을 배열에 담음. 1 - 3. 배열의 이중정렬로 행이 가장 작고 행이 같으면 열이 가장 작은 손님을 탐색 1 - 4. 연료가 없으면 빈 행렬이..
https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 문제풀이 : 행과 열을 체크하는 함수 생성 높이에 따라 분류 1. 높이가 +2, -2 이상 차이나는 경우 false를 return 2. 높이가 같은 경우 stack +1 3. 오르막길인 경우 3 - 1. 그 전까지의 stack이 L 보다 큰 경우 통과 3 - 2. stack이 L보다 작은 경우 false를 return 4. 내리막길인 경우 4 - 1. 내리막길을 확인하는 downFlag = 1, stack = 1 4 -..
https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr 문제풀이 HashSet을 이용해 중복을 제거 HashMap에 HashSet을 저장해 다음에 올 HashSet을 구현 8보다 크면 -1을 return 이므로 8까지 구현 소스코드 /* 최솟값이 8보다 크면 -1을 return -> 1~8까지만 탐색 */ import java.util.*; class Solution { static HashMap map; static int n; public int solution(int N, int number) { int answer = -1; n = N; map = new HashMap(); for(int..
https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 문제풀이 이분탐색을 활용해 심사에 걸리는 시간을 최소로 한다. 소스코드 /* 이분탐색 가장 작은 경우, 가장 큰 경우 설정 / start, end mid 관한 알고리즘 구현 검증 작업 if에 작을 때 else에 클 때, 정답 적용 */ import java.util.*; class Solution { public long solution(int n, int[] t..
https://www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름 www.acmicpc.net 문제풀이 1. x,y,d1,d2 경우의 수 탐색 2. 경계선과 영역을 표시하는 함수 생성 3. 영역별로 인구수를 계산해 가장 많은 선거구와 가장 적은 선거구의 인구 차이의 최솟값을 구해 비교하는 함수 생성 소스코드 import java.awt.print.Pageable; import java.util.*; import java.lang.*; import java.io.*; /* 1. 기준점, 경계의 길..
https://www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. www.acmicpc.net 문제풀이 : 1초동안 일어나는 일들을 구현 1. 낚시왕이 오른쪽으로 한 칸 이동 2. 열에 있는 상어 중 땅에 가장 가까운 상어 잡음 3. 상어 이동 3-1 벽에 만나면 반대로 이동 3-2 상어가 겹치면 덩치가 큰 상어가 다 잡아먹는다. 4. 낚시왕이 오른쪽으로 나가면 끝난다. 소스코드 import java.lang.reflect.Array; import java.util.*;..
import java.util.*; import java.lang.*; import java.io.*; // 16% 틀림 // 처음 도달하는게 최소라는 보장이 있어야 한다. // 한 턴에 움직이는 것을 체크 public class 로봇1726 { static int m; // 공장 세로 길이 static int n; // 공장 가로 길이 static int factory[][]; // 공장 지도 static int visited[][][]; // 방문 여부 표시 static int answer; // 4방향 표시 동,서,남,북 static int[] dx = {0,1,-1,0,0}; static int[] dy = {0,0,0,1,-1}; static int sy, sx, sdir; static int ..
https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 문제 풀이 1. 단어와 몇 번째의 도달했는지를 나타내는 클래스를 새로 만든다. (dot) 2. Queue로 BFS를 실행해 target이 몇 번째로 오는지 구한다. 소스코드 import java.util.*; class Solution { public static void main(String[] args) { Stri..
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 문제풀이 1. DFS를 이용해 치킨집을 M개를 추린다. 2. 추린 치킨집을 토대로 도시의 치킨 거리를 구한다. 3. 값의 비교를 통해 가장 작은 치킨 거리를 구한다. 소스코드 import java.util.*; import java.io.*; import java.lang.*; public class 치킨배달15686 { static int n; // 도시의 크기 static..
목차 개념 Stack은 자료 구조 중 하나로 상자에 물건을 쌓아 올리듯이 데이터를 쌓는 자료 구조 입니다. Stack의 가장 큰 특징은 나중에 들어간 것이 먼저 나오는 후입선출(Last In Fist Out) 형태인 것 입니다. 이 방식을 가진 자료구조인 Stack을 이용해 다양한 문제를 해결할 수 있습니다. 특징 1. 먼저 들어간 자료가 나중에 나옵니다. LIFO (Last In Frist Out) 2. 시스템 해킹에서 버퍼오버플로우 취약점을 이용한 공격을 할 때 스택 메모리의 영역에서 합니다. 3. 인터럽트 처리, 수식의 계산, 서브루틴의 복귀 번지 저장 등에 사용됩니다. 4. 그래프의 깊이 우선 탐색(DFS)에 사용됩니다. 5. 재귀적(Recursion) 함수를 호출 할 때 사용합니다. 사용법 선언..
목차 개념 Map이란? Key와 Value의 한쌍으로 이우러진 데이터의 집합입니다. Key에 대한 중복은 없으면 순서를 보장하지 않습니다. 뛰어난 검색 속도를 가집니다. 인덱스가 따로 존재하지 않기 때문에 iterator를 사용합니다. 종류와 특징 Map은 인터페이스이므로 구현체를 선언해 사용합니다. 구현체의 종류는 4가지가 있습니다. HashMap, HashTable, LinkedHashMap, TreeMap HashMap HashMap은 내부에 Key 와 Value 를 저장하는 자료 구조를 가지고 있습니다. HashMap은 해시 함수를 통해 키와 값이 저장되는 위치를 결정하므로, 사용자는 그 위치를 알 수 없고, 삽입되는 순서와 들어 있는 위치 또한 관계 없습니다. 특징 Key에 대한 중복이 없으며 ..
너지살
'분류 전체보기' 카테고리의 글 목록 (31 Page)