문제보러가기 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감�� www.acmicpc.net 이문제는 시뮬레이션과 dfs를 합쳐서 구현을 하였다. 문제 자체는 심플한데 구현하기는 꽤 까다로운 문제였던 것 같다. 문제풀이 -주어진 배열에서 CCTV일 경우 해당 인덱스와 CCTV번호를 Camera객체로 만들어서 list에 저장한다. -list에 담긴 Camera객체를 하나씩 확인하며 가능한 방향에 대한 모든 map상태를 체크한다. -가능한 방향이라면 monitor함수를 통해 map상태를 갱신하며 list에 담긴 다음 Camera객체..
문제보러가기 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 이문제는 DP의 개념과 배열로 삼각형을 접근하는 방법만 알면 어렵지않게 풀 수 있는 문제였던것 같다. 문제풀이 -DP배열에 이전까지와 현재 값을 더한것중 큰것을 넣는다. -위의 그림처럼 배열이 생성되고 따라서 빨간 화살표부분이 DP[i][j]이면 DP[i-1][j-1],DP[i-1][j]에서 내려올 수 있는 것이다. -따라서 DP[i][j] =Math.max(dp[i-1][j-1], dp[i-1][j])+triangle[i][j] 가 된다. -여기서 고민해 봐야할 것은 삼각형 면들에 있는 즉 j==0일때와 j==i일때의 경우..
문제보러가기 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 �� programmers.co.kr 이문제는 해시와 정렬을 이용해 풀 수 있는 문제였다. 깔끔하게 풀고 싶었으나 답이 나오게 문제를 풀기만 한 것 같다...ㅎ 문제풀이 -장르별로 어떤 노래가 있는지 구분하기 위해 Map을 이용해 저장해준다. -각 장르 안에서 노래들은 재생 횟수가 높은 순, 같은 재생 횟수일 경우 고유번호(인덱스가 사용됨)가 낮은 순으로 저장할 수 있도록 PriorityQueue를 사용하고 정렬 기준을 정해주기 위해 compareTo함수를 구현해 준다. -장르별..
문제보러가기 코딩테스트 연습 - 위장 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..
- Total
- Today
- Yesterday
- 분리 집합
- 삼성 sw역량테스트
- 완전탐색
- 최소 스패닝 트리
- BFS
- Stomp
- Spring
- MST
- 코딩테스트
- DP
- 자바
- websocket
- SWEA
- 백준
- 삼성 sw역량 테스트
- 프로그래머스
- 채팅
- Baekjoon
- JavaScript
- sockjs
- OS
- Heap
- java
- git
- Oracle
- programers
- 알고리즘
- 운영체제
- dfs
- 정렬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |