
문제보러가기 코딩테스트 연습 - 위장 programmers.co.kr 이 문제는 나의 수학 기억력이 이 정도라니... 라는걸 깨닫게 한 문제였다. 조합이길래 조합 코드 만들어서 사용했는데 시간 초과!!!! 모든 조합수 구하면 안 돼요~ 문제풀이 -각각의 key, value로 저장할 수 있는 자료구조인 Map을 이용해 저장한다 -> key : 의상의 종류 , value : 의상 이름 *value가 여러 개일 수 있으므로 리스트로 저장한다 -같은 key의 의상끼리는 조합을 만들 수 없고 다른 key끼리가 조합이 가능하며 하나만 입는 경우는 있으나 하나도 안 입는 경우는 없다 -경우의 수를 구해보면 A, B, C종류(key)의 의상이 있고 A, B, C가 각각의 종류에 해당하는 의상 개수(value)일 때 식..
문제보러가기 코딩테스트 연습 - N으로 표현 programmers.co.kr 이문제는 dp로 분류되어있는 문제이다. dp란 작은 문제로 쪼개서 그 작은 문제를 저장해 놓았다가 다시 사용하며 답을 구하는 것이다.라고 생각했는데 처음에 이 문제가 어떻게 dp로 접근하지..? 여기부터 막혔었다..ㅎ 1개 사용 2개 사용을 이용해서 3개 사용을 할 수 있다는 것을 깨닫고 저장하여서 풀었던 문제이다! 개념이 흔들리니 문제 풀기가 막막했다는... dp알고리즘에 대한 개념을 제대로 정리해봐야겠다고 생각했다 문제풀이 -주어진 N이 1 ~ 8개로 만들 수 있는 모든 숫자를 dp에 저장한다. -dp [i] = {dp [j] , dp [j-i]} -> ex) dp [3] = {dp [1] , dp [2]} , {dp [2]..
문제보러가기 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하� www.acmicpc.net 이문제는... 정말.. 코딩이 단순히 코드를 작성하는 게 아니라 문제를 정확히 이해하는 것에서부터 출발한다는 걸 알려주는 문제였다.. 결론 -> 문제를 잘 읽자! 문제풀이 -각 말의 위치와 방향을 저장하고 있는 kInfo [][] 배열과 체스판의 색상 정보를 담고 있는 map [][] 배열에 초기 정보를 받아 저장한다. -추가로 각 말들이 움직였을 때 맵의 상태를 저장하는 moveMap [][] 배열을 만든다 해당 말보다 나중에 들어올 경우 쌓이..
문제보러가기 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린�� programmers.co.kr 우선 이문제는 큐를 이용해서 풀 수 있었다. 문제에 "들어온 순서대로" 라고 명시되어 있으므로 큐를 사용해야겠다는 접근은 어렵지 않았다! 문제풀이 -들어온 순서대로 먼저 확인해야하기 때문에 큐를 생성하여 넣는다. -location을 함께 저장해서 문제에서 원하는 location의 문서가 몇번째인지 확인할 수 있도록 Pair클래스를 생성한다. -우선순위가 더 높은 문서가 있다면 뒤로 밀리기 때문에 남은 인쇄요청중 우선순위가 높은걸 확인할 수 있게 Pr..
문제보러가기 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 �� programmers.co.kr 이문제는 정렬을 잘 활용할 수 있는가를 묻는 간단한 문제였다(사실 나에겐 정말 간단하지는 않았다는...) 이문제는 예전에 풀어보고 코드를 정리하다가 못 풀고 넘어가서 다시 푼 문제이다. 그래도 실력이 쪼끔은 늘었는지 보고서 String으로 내림차순!이라고 생각을 했다는 ㅎ 하지만 그게 끝이 아니었다지.... 문제풀이 -가장 큰 수를 만들려면 가장 큰 숫자가 앞에 와야 한다. -in..
문제보러가기 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 � programmers.co.kr 이문제는 완전 탐색 문제로 주어진 숫자로 만들 수 있는 모든 문자 중에 소수를 찾는 문제였다. 숫자로 순열을 만드는 코드를 작성할 수 있다면 쉽게 풀 수 있었던 문제인 거 같다. (물론 나는 순열 코드를 고치고 결국 참고하고...ㅎ) 공부할게 역시 엄청나게 많구나를 느낀 문제였다 ㅎ... -참고한 순열 코드 & 설명 import java.util.HashSet; import java.util.stream.Stream; class S..
문제보러가기 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 이문제는 maxHeap큐와 minHeap큐를 이용해서 간단하게 풀 수 있었다. 진짜 어이없게도 큐에서 값을 제거할때 객체로 접근하여 해당하는 큐의 값을 제거하는게 되는지 까먹었다는... 후 열심히 해야겠다! 문제풀이 -maxHeap과 minHeap을 PriorityQueue 2개로 구현한다. -주어진 배열에서 공백을 기준으로 split한 값을 배열에 넣는다. -s[0]으로 D, I 를 구분하여 수행한다. -I의 경우 maxHeap과 minHeap 둘다 add해준다. -D 1일경우 maxHeap에서 poll하고 그 값으로 minHeap에서 찾아 remove해준다. -D -1일경우는 위의 과정을 반대로 해준다. import jav..

힙관련 알고리즘 문제를 풀어보며 Heap에 대해 정확히 이해하고 넘어가자! 해서 정리하고자 한다. 힙(Heap) 자료구조에서 가장 큰 값, 작은 값 등을 빠르게 찾아내기 위한 Heap구조가 있다. 완전 이진 트리로 구성되었다. 이 Heap구조는 우선순위를 부여하여 가장 우선 순위가 높은 값부터 제거하는 우선순위 큐 를 구현하는 데 가장많이 쓰인다. Heap구조는 부모노드와 자식노드의 순서에만 관여하고 형제노드끼리의 순서와는 상관이 없다! 기본적으로 root 노드의 값이 가장 큰 MaxHeap과 root노드의 값이 가장 작은 MinHeap이 있다. 우선 트리의 구성방식을 보자! root노드는 0인덱스가 아닌 1인덱스를 베이스로 한다. 왼쪽 자식노드 : 부모노드 * 2 오른쪽 자식노드 : 부모노드 * 2 +..
- Total
- Today
- Yesterday
- 삼성 sw역량테스트
- 완전탐색
- DP
- 최소 스패닝 트리
- JavaScript
- sockjs
- 백준
- Spring
- Heap
- java
- 자바
- MST
- 삼성 sw역량 테스트
- Stomp
- programers
- websocket
- Baekjoon
- OS
- Oracle
- 프로그래머스
- git
- 정렬
- 코딩테스트
- 채팅
- dfs
- 알고리즘
- SWEA
- 분리 집합
- BFS
- 운영체제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |