Coding Test

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

[161990] 바탕화면 정리

✔ 바탕화면 정리 [프로그래머스 161990] 문제 분석하기 S(가장 왼쪽, 가장 위쪽), E(가장 오른쪽, 가장 아래쪽)로 드래그 해야하므로 가장 왼쪽, 오른쪽, 아래쪽, 위쪽의 좌표를 구하도록 함 손으로 풀어보기 바탕화면 저장 반복문으로 가장 왼쪽, 위쪽, 오른쪽, 아래쪽을 구함 가장 왼쪽 : #가 가장 처음으로 나온(작은) wallpaper 가장 위쪽 : #가 가장 처음으로 나온(작은) wallpaper[i] 가장 오른쪽 : #가 가장 마지막으로 나온(큰) wallpaper + 1 가장 아래쪽 : #가 가장 마지막으로 나온(큰) wallpaper[i] + 1 좌표 리턴 슈도코드 작성하기 wallpaper(바탕화면의 칸의 상태를 나타내는 문자열 배열) lux, luy(드래그 시작점 좌표) rdx, r..

Coding Test/Java 알고리즘 실전

[172928] 공원 산책

✔ 공원 산책 [프로그래머스 172928] 문제 분석하기 구현 문제로 공원을 저장한 후 명령에 따라 차례대로 이동 손으로 풀어보기 공원을 저장 로봇 강아지가 모든 명령어를 수행 N일 경우, 장애물을 만나지 않거나 공원을 벗어나지 않을 때 북쪽으로 이동 S일 경우, 장애물을 만나지 않거나 공원을 벗어나지 않을 때 남쪽으로 이동 W일 경우, 장애물을 만나지 않거나 공원을 벗어나지 않을 때 서쪽으로 이동 E일 경우, 장애물을 만나지 않거나 공원을 벗어나지 않을 때 동쪽으로 이동 좌표 리턴 슈도코드 작성하기 park(공원을 나타내는 문자열 배열) routes(로봇 강아지가 수행할 명령이 담긴 문자열 배열) sx, sy(시작 위치 좌표) parks(공원을 담은 문자열 배열) parks에 공원 정보 저장하기 시작 ..

Coding Test/Java 알고리즘 실전

[176963] 추억 점수

✔ 추억 점수 [프로그래머스 176963] 문제 분석하기 값을 삽입하고 검색하는 평균 시간 복잡도가 O(1)인 HashMap 자료 구조를 사용해서 인물의 이름과 그리움 점수를 저장한 후, 사진 속 인물의 그리움 점수를 합하도록 함 손으로 풀어보기 HashMap에 인물의 이름과 그리움 점수를 저장 사진 속 인물의 그리움 점수를 합함 슈도코드 작성하기 name(그리워하는 사람의 이름을 담은 문자열 배열) yearning(각 사람별 그리움 점수를 담은 정수 배열) photo(각 사진에 찍힌 인물의 이름을 담은 이차원 문자열 배열) missing(그리워하는 사람의 이름과 그리움 점수를 담은 hashMap) missing에 name, yearning 저장하기 사진 속 이름의 그리움 점수 합산하기 합산된 그리움 점..

Coding Test/Java 알고리즘 실전

[178871] 달리기 경주

✔ 달리기 경주 [프로그래머스 178871] 문제 분석하기 배열을 이용할 경우 시간 복잡도는 O(n)이므로 50000 * 1000000 = 50000000000번으로 시간을 초과하게 됨 그러므로 값을 삽입하고 검색하는 평균 시간 복잡도가 O(1)인 HashMap 자료 구조를 사용해서 선수 이름과 순위를 저장한 후, 불리는 선수에 따라 순위를 swap 변경해주도록 함 손으로 풀어보기 HashMap에 선수의 이름과 초반 순위를 저장 해설진이 부른 이름에 따라 바로 앞의 순위의 선수와 순위를 swap 슈도코드 작성하기 players(선수들의 이름과 현재 등수) callings(해설진이 부른 이름) rank(선수들의 이름과 현재 등수를 담은 hashmap) rank에 players 저장하기 해설진이 부른 이름을..

Coding Test/Java 알고리즘 개념

[목차] Do it! 알고리즘 코딩 테스트 자바

목차 문제 풀이 01 코딩 테스트 준비하기 시간 복잡도 X 디버깅 X 02 자료구조 배열과 리스트 숫자의 합 구하기 평균 구하기 구간 합 구간 합 구하기 1 구간 합 구하기 2 나머지 합 구하기 투 포인터 연속된 자연수의 합 구하기 주몽의 명령 좋은 수 구하기 슬라이딩 윈도우 DNA 비밀번호 최솟값 찾기 1 스택과 큐 스택으로 오름차순 수열 만들기 오큰수 구하기 카드 게임 절댓값 힙 구현하기 03 정렬 버블 정렬 수 정렬하기 1 버블 소트 프로그램 1 선택 정렬 내림차순으로 자릿수 정렬하기 삽입 정렬 ATM 인출 시간 계산하기 퀵 정렬 K번째 수 구하기 병합 정렬 수 정렬하기 2 버블 소트 프로그램 2 기수 정렬 수 정렬하기 3 04 탐색 깊이 우선 탐색 연결 요소의 개수 구하기 신기한 소수 찾기 친구 ..

Coding Test/Java 알고리즘 실전

[2166] 다각형의 면적

✔ 다각형의 면적 [백준 2166] 문제 분석하기 CCW는 벡터의 외적값을 의미하기도 하므로 CCW의 절댓값은 세 점의 벡터 외적이고, 세 점을 기준으로 하는 평행사변형의 넓이를 나타냄 즉, CCW의 절댓값을 2로 나누면 세 점을 꼭짓점으로 하는 삼각형의 넓이를 알 수 있음 결국 다각형의 넓이는 원점과 다른 두 점 간의 CCW로 구할 수 있음 손으로 풀어보기 원점과 순서대로 나오는 두 점 사이의 CCW값을 계산 결과의 총합을 절댓값으로 변경한 후 2로 나눠 정답을 구함 예) 0 0, 0 10, 10 10, 10 0 슈도코드 작성하기 N(점의 개수) x[](x 좌표 저장하기) y[](y 좌표 저장하기) for(i -> 0 ~ N - 1) { 배열에 x, y 좌표 저장하기 } x[N] = x[0] y[N] ..

Coding Test/Java 알고리즘 실전

[2162] 선분 그룹

✔ 선분 그룹 [백준 2162] 문제 분석하기 선분 교차 여부를 구한 후, 교차되는 선분을 1개의 그룹으로 합치는 유니온-파인드를 구현 손으로 풀어보기 변형된 유니온-파인드 알고리즘으로 배열을 초기화 부모 노드 배열은 모두 -1로 초기화 find 함수는 현재 인덱스에 해당하는 값이 음수라면 인덱스값을 리턴하고, 값이 양수라면 parent[i]로 이동 음수라면 현재 인덱스에 해당하는 노드가 현재 선분 그룹의 대표 노드라는 뜻이 되며 해당 음수의 절댓값이 현재 선분 그룹에 연결되어 있는 선분의 개수가 됨 union 함수는 두 대표 노드가 같으면 리턴하고, 대표 노드가 다른 경우에는 연결하여 하나의 선분 그룹으로 만듦 대표 노드를 연결할 때는 하나로 합쳐지는 선분 그룹의 대표가 될 노드에 새롭게 합쳐지는 선분..

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