Coding Test

자바를 사용한 코딩 테스트
Coding Test/알고리즘 실전

[16236] 아기 상어

✔ 아기 상어[백준 16236]코드 구현하기/* * 문제 분석하기 * : 아기상어의 상하좌우를 확인하며 물고기를 먹으러 가도록 함 * 이때 자신보다 작은 물고기가 있다면 이를 먹고, 같다면 지나가고, 크면 지나갈 수 없음 * 이를 반복하며 아기상어가 더 이상 먹을 수 있는 물고기가 없다면 멈추도록 함 * *//* * 손으로 풀어보기 * 1. 아기상어의 상하좌우를 확인하며 먹을 수 있는 물고기가 1마리 이상 있는지 확인 * 먹을 수 있는 물고기는 자신보다 크기가 작은 물고기이며, 이동 시 자신과 같다면 지나갈 수 있고 자신보다 크다면 지나갈 수 없음 * 이때 물고기가 1마리라면 이 물고기를 먹으러 가고, * 그렇지 않다면 거리가 가장 가까운 물고기/거리가 가까운 물고기 많다..

Coding Test/알고리즘 실전

[MYSQL] 프로그래머스 SUM, MAX, MIN

✔ SUM, MAX, MIN가장 비싼 상품 구하기[프로그래머스 131697]MAX : 데이터 최대 값 가져오기/* SELECT : 가장 높은 판매가 FROM : PRODUCT 테이블*/SELECT MAX(PRICE) AS MAX_PRICEFROM PRODUCT가격이 제일 비싼 식품의 정보 출력하기[프로그래머스 131115]       서브쿼리 : 하나의 SQL 문 안에 있는 또 다른 SQL문       LIMIT : 결과에서 몇 개의 행을 반환할 것인지 제한/* SELECT : 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격 FROM : FOOD_PRODUCT 테이블 WEHRE : 가격이 제일 비싼 식품*/SELECT *FROM FOOD_PRODUCTWHERE PRICE = (SELECT MA..

Coding Test/알고리즘 실전

[17140] 이차원 배열과 연산

✔ 이차원 배열과 연산[백준 17140]코드 구현하기/* * 문제 분석하기 * : 행의 개수와 열의 개수의 크기에 따라 R 연산과 C 연산을 반복하여 A[r][c]에 들어있는 값이 k가 되도록 함 * 예) [3, 1, 1] * 3이 1번, 1이 2번 등장하므로 등장 횟수가 커지는 순으로 정렬해야 하므로 [3, 1, 1, 2] * *//* * 손으로 풀어보기 * 1. 행의 개수가 열의 개수보다 많거나 같다면 R 연산을 수행, 그렇지 않다면 C 연산을 수행 * 2. 수의 등장 횟수가 커지는 순으로 정렬. 같은 것이 있을 경우, 수가 커지는 순으로 정렬 * 이 정렬 결과(수, 등장 횟수)를 배열 A에 다시 넣도록 함 * 이를 위해 한 행(열)에 해당하는 수와 그 수의 등장 횟수를 찾고..

Coding Test/알고리즘 실전

[15685] 드래곤 커브

✔ 드래곤 커브[백준 15685]코드 구현하기/* * 문제 분석하기 * : 세대가 거듭할 수록 이전 세대의 좌표들을 기준으로 반시계 방향으로 90도 회전시킨 방향으로 드래곤 커브가 그려지는 것을 볼 수 있음 * 그러므로 이를 이용해 드래곤 커브의 세대만큼 반복하여 선분의 방향을 구하도록 함 * *//* * 손으로 풀어보기 * 1. 입력받은 드래콘 커브의 정보에 따라 시작점부터 시작해 이동하는 방향을 모두 구하기 * 이때 1세대부터 시작해 g세대까지 반복하며 이전 세대를 바탕으로 선분의 방향을 구하도록 함 * 선분의 방향은 이전 세대의 좌표를 기준으로 반시계 방향으로 90도 회전시킨 방향 * 2. 구한 방향에 따라 드래곤 커브를 그림 * 3. 모든 드래곤 커브를 그린 후, 좌표를 살펴..

Coding Test/알고리즘 실전

[20056] 마법사 상어와 파이어볼

✔ 마법사 상어와 파이어볼[백준 20056]코드 구현하기/* * 문제 분석하기 * : 파이어볼의 정보에 따라 파이어볼을 배열에 저장한 후, 이를 이동하고 소멸하도록 함 * 또한 조건에 따라 합쳐 4개의 파이어볼로 나누도록 함 * 이를 K번 반복한 후, 남아있는 파이어볼 질량의 합을 구하도록 함 *//* * 손으로 풀어보기 * 1. 파이어볼의 정보에 따라 파이어볼을 저장 * 2. 모든 파이어볼을 방향과 속력에 따라 이동 * 이때 1번과 N번은 이어져 있으므로 이를 위해 N으로 나눈 나머지 값의 위치로 이동하도록 함 * 3. 이동이 모두 끝난 뒤, 2개 이상의 파이어볼이 있다면 분열 * 모든 파이어볼을 합쳐 질량, 속력을 구하고 이들의 방향에 따라 만들어진 파이어볼을 새로 저장 * ..

Coding Test/알고리즘 실전

[6443] 애너그램

✔ 애너그램[백준 6443]코드 구현하기/* * 문제 분석하기 * : 각 단어의 알파벳을 분리한 후, 이를 모두 사용하며 만들 수 있는 단어들을 찾도록 함 * 이때 중복되고 알파벳 순서로 출력해야 하므로 알파벳의 수를 카운트하고, * 이를 이용해 가장 앞에 있는 알파벳부터 시작하여 단어를 만들도록 함 *//* * 손으로 풀어보기 * 1. 각 단어의 알파벳을 분리 * 2. 각 단어에 존재하는 알파벳의 개수를 세기 * 3. 각 알파벳을 탐색하며 만들 수 있는 단어들을 출력 *//* * 6443) 애너그램 */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ..

Coding Test/알고리즘 실전

[21278] 호석이 두 마리 치킨

✔ 호석이 두 마리 치킨[백준 21278]코드 구현하기/* * 문제 분석하기 * : 플로이드 워셜을 이용해 각 건물 지점에서 다른 지점까지 가는 모든 경로의 시간을 구한 후, * 건물을 두 개 짓는 모든 경우의 수에 대하여 가장 적은 시간을 갖는 건물 두 개를 고르도록 함 *//* * 손으로 풀어보기 * 1. 플로이드 워셜을 이용해 각 건물 지점에서 다른 지점까지 가는 모든 경로의 시간을 구하도록 함 * 2. 건물 중 두 개를 골라 치킨집을 정할 경우의 왕복 시간의 총합을 구하도록 함 * 이때 두 치킨집 중 더 작은 거리를 선택해야 함 * 3. 이를 반복하여 최단 시간을 구해 출력하도록 함 *//* * 21278) 호석이_두_마리_치킨 */public class Main { stati..

Coding Test/알고리즘 실전

[2668] 숫자고르기

✔ 숫자고르기[백준 2668]코드 구현하기/* * 문제 분석하기 * : 첫째 줄에서 수를 선택한 후, 그 수의 바로 밑의 둘째 줄에 해당하는 수를 첫째 줄에서 찾아 * 두 수가 일치하는지 확인하는 것을 반복하여 최대 정수의 개수를 구하도록 함 * 예) 1 -> 3 -> 1 / 5 -> 5 *//* * 손으로 풀어보기 * 1. 첫째 줄에서 수를 선택한 후, * DFS 탐색을 통해 숫자 -> numbers[숫자] -> numbers[numbers[숫자]]로 싸이클이 발생하는지 확인하도록 함 * 2. 이를 반복하여 싸이클이 발생하는 수를 찾아 그 개수와 숫자들을 출력하도록 함 *//* * 2668) 숫자고르기 */public class Main { static BufferedRea..

김깅긍
'Coding Test' 카테고리의 글 목록 (4 Page)