본문 바로가기

코딩테스트/커뮤러닝 - JAVA6

[3주차] 1. 위장 문제 설명 및 풀이 방식 이 문제는 옷의 종류별 조합이 몇가지나 되는지 구하면 된다 위장 용품 종류 별 갯수를 구해서 곱해주면 전체 조합을 구할 수 있다 이 때 위장 용품 착용을 안할수도 있으니까 각각의 위장용품 종류 + 1을 햇 곱해준다 근데 이렇게 하면 아무것도 착용 안한 경욱 있으니까 그 경우를 하나 빼줘야 한다 이 문제의 핵심은 위장 용품의 종류 갯수를 세는 것에 있다! 이를 세기 위해서 해시를 이용한다 해시는 인덱스가 아닌 키 값을 저장할 수 있는 자료구조이다 특정 key의 hash 값을 얻어서 그걸 배열의 index로 사용하는 자료구조이다 이 때 hash 함수는 최대한 겹치는 값이 없도록 unique한 값을 생성하는 함수이다 또한 해시는 탐색 없이 인덱스(key)값으로 바로 value에 접근이.. 2022. 3. 12.
[2주차] 게임 맵 최단거리 https://programmers.co.kr/learn/courses/30/lessons/1844?language=java 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 이런 길찾기 문제는 BFS와 DFS로 해결이 가능하다 DFS(Depth First Search, 깊이 우선 탐색)을 통해 경로를 찾는 경우 BFS(Breath Frist Search, 넓이 우선 탐색)에 비해 평균적으로 경로 탐색 시간이 더 걸린다. DFS의 경우 가능한 모든 경로를 .. 2022. 3. 6.
[1주차] 4. 숫자게임 https://yummy0102.tistory.com/304 [JAVA] Summer/Winter Coding(~2018) 숫자 게임 https://programmers.co.kr/learn/courses/30/lessons/12987 코딩테스트 연습 - 숫자 게임 xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠.. yummy0102.tistory.com 문제 풀이 및 접근법 숫자게임은 B가 최대 승점을 얻는 경우를 생각하는 문제이다 이를 시뮬레이션(Simulation)이라고 한다 시뮬레이션은 특정 상황을 재현하여 문제를 해결하는 방법이다 B가 최대 승점을 가지려면, 게임마다 근소한 차이로 A를 이겨야 한다 따라서 B의 작은 .. 2022. 2. 27.
[1주차] 3. 예산 https://yummy0102.tistory.com/303 [JAVA] 백준 2512번 - 예산 이 문제는 이분탐색을 통해 해결이 가능했다 이분 탐색의 기준은 인덱스가 아닌 예산이 된다 예산을 기준으로 시행하며 만약 m이 예산의 합보다 작으면 임계치(mid)를 1 감소하고, m이 더 크면 예 yummy0102.tistory.com 문제 풀이 및 접근법 먼저 이 문제는 탐색(Search) 문제이다 즉, 데이터들 중에서 특정값을 찾아내는 것이다! 가장 간단한 방법으로는 0부터 최대 예산까지 모두 순회하면서 확인하는 것이다 하지만 이는 너무 오래 걸리기 때문에 PASS! 문제에서 우리가 찾아야 할 것은 예산의 상한가, 즉 금액이고 예산의 최솟값과 최댓값이 주어진다 그리고 금액 기준으로 보면 0부터 최댓값까지.. 2022. 2. 27.
[1주차] 2. 가장 큰 수 내가 푼 코드 및 문제 설명 https://yummy0102.tistory.com/301 [정렬] Level 2 가장 큰 수 - JAVA 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 yummy0102.tistory.com 문제 해설 이 문제는 "정렬"에 해당하는 문제이다 접근법을 먼저 알아보자 얼핏보면 숫자를 구하는 문제니까 배열로 주어지는 모든 숫자들을 사용하여 만들 수 있는 모든 경우의 수를 구하고, 그 중에서 가장 큰 값을 고르면 되지 않을까? 라는 생각을 한다 사실 나도 그럼ㅋㅋㅋㅋㅋㅋ 근데 이렇.. 2022. 2. 26.
[1주차] 1. 기지국 설치 내가 푼 코드 및 문제 설명 https://yummy0102.tistory.com/302 [JAVA] Summer/Winter Coding(~2018) 기지국 설치 https://programmers.co.kr/learn/courses/30/lessons/12979 코딩테스트 연습 - 기지국 설치 N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이.. yummy0102.tistory.com 이제 강사님의 문제 해설 및 풀이 꿀팁을 정리해보겠다! 문제 해설 우선 이 문제는 탐욕법(Greedy)로 푸는 문제다 그 이유는 우선 알고리즘 설명하고 하겠다 문제 풀이 순서 1. 아파트 전체를 1동부터 끝까지 순회한다 2. 현재 위치에 있는 아파트가 .. 2022. 2. 22.