일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 백준 2467번 용액 자바 - 이분탐색
- 18111번 마인크래프트 - java 구현
- 백준 1647번 도시 분할 계획 - java
- dp
- replace()
- 프로그래머스 java
- 백준 14938번 서강그라운드
- 백준 1043번 거짓말 - java 분리 집합
- ac 5430번
- StringTokenizer
- HashSet
- Stack
- append
- 백준 2473번 세 용액 - java
- 프로그래머스
- 코틀린기초
- 백준 1541
- 최소 힙 1927
- 백준 1197번 최소 스패닝 트리 - java
- kotlin
- StringBuilder
- HashMap
- 백준 3190번
- 백준 1806번 부분합 java
- toUpperCase
- map
- Java
- mysql hy000 에러
- 프로그래머스 자바
- hash
- Today
- Total
목록분류 전체보기 (177)
말하는 컴공감자의 텃밭
요즘 지문 긴게 좋더라.. 뭔가 풀고 뿌듯한 느낌이 든다. 이해 잘못하면 큰일이긴 한데 ㅎㅎ 이 문제는 쉬운 BFS인데 시작점이 여러개라는 점과 날짜를 어떻게 기록하지? 가 관건인 문제였다. 익은 토마토 주변에 안익은 토마토가 있다면, 하루지나고 익어버린다. 다 익는 최소 날짜를 출력해야하고, 못익거나 처음부터 다 익은 경우는 각각 -1, 0을 출력하면 된다. 날짜 출력이 관건인데 이를 +1로 해결했다. 이 방법을 찾지못해서 온갖 방법을 쓰다가 결국 남의 블로그들을 뒤져보았다 호호 ㅠㅠ 익은 토마토 근처에 토마토가 있다면, 익은 토마토의 값 +1을 해주어 마지막 토마토값을 출력하면 날짜가 되었다. 로직을 자연어로 정리하면 1. 익은 토마토 1을 발견하면 Que에 넣는다. 2. Que가 빌때까지 반복한다...
코테 준비할수록 DP 점화식을 찾거나 규칙 찾는거에 약한듯해서 DP위주로 준비하게 된다. 그래프는 이제 좀 감 잡았나 싶네 껄꼴껄~ 소주 땡긴다 문제를 읽고 가능한 수를 먼저 떠올리는 습관을 들였다. 문제를 보면 한 스티커를 선택하면 상하좌우 모두 사용이 불가능하다. 따라서 연속적으로 사용할 수 없고, 지그재그로 사용하면 가장 많은 수의 스티커를 붙일 수 있다. 하나의 경우가 더있는데 이런 경우도 존재했다. 어릴적 바둑배웠는데 '날일자' 日 생각나네 그러면 점화식을 세워준다. > DP[0][3] = DP[1][0] + arr[0][3] 또는 DP[1][2] + arr[0][3] 아래 스티커 >> DP[1][3] = DP[0][0] + arr[1][3] 또는 DP[0][2] + arr[1][3] 으로 점화..
오래걸렸다. 순환되는 경우를 고려했는데 생각해보니 필요가 없었다. 단방향 간선이 주어지고, 1->2 갈수있고, 2->3, 3->1 이라면 1에서 1,2,3 모두 갈 수 있게 표기해야하는 문제다. 가보자. 플로이드 위셜은 N^3으로 음수가 없는 최단 경로의 가중치를 계산하는데 적합하다. 3중 for문을 사용하여 탐색하고, i에서 j로 갈수 있다면, i -> k , k -> j가 가능한지 판단해서 초기화 해준다. 이 문제는 가중치는 없으나 i에서는 j만 갈 수 있으나 j를 거쳐 k로 가는 방법도 알아야 하므로 사용했다. HTML 삽입 미리보기할 수 없는 소스 애를 먹었다. k i j. 순이 아닌 i j k로 작성했기 때문이다. i에서 j로 간다면 i j 와 j k가 갈 수 있는지 판단하는건 당연한데 로직을 ..
햄버거 재료를 제한된 칼로리에 맞게 조합하고, 민기의 선호도가 가장 높은 조합의 점수를 출력하면 된다. DFS를 이용해 재귀를 통해 제한된 칼로리 이내의 모든 경우를 찾아 주었다. HTML 삽입 미리보기할 수 없는 소스 아 간단하네~ 했는데 에? T가 높은 인풋도 있나보다. public static void dfs(int depth, int cal, int point) { answer = Math.max(answer, point); for (int i = depth; i < N; i++) { if (cal + ingredient[i][1] L) { return; } // 모든경우 다 찾았으므로 if (depth == N) { answer = Math.max(answer, point); return; } ..
K번째 숫자를 지워주면 된다. 쉽지용 queue를 활용해 줍니다. HTML 삽입 미리보기할 수 없는 소스
DFS BFS 구현 문제이다. 싸피 준비하면서 가장 신경쓰는 부분인데 당연히 쉽게 풀어냈다. 유의점은 방문할수 있는 정점이 여러 개면 정점 번호가 작은것부터 먼저 방문해야한다. HTML 삽입 미리보기할 수 없는 소스 언제나 DFS 는 재귀함수, 방문한곳 true 후 다시 false로 돌려두기 기억하고 BFS는 Que를 LinkedList로 구현한 다음 add한 값에서 poll()로 조건을 넣어 계산하는걸 기억하자쟈자쟈자ㅑ
수학 구현 문제네오, 유의할 점은 숫자 배열에따라 길게 가져가는게 이득일 수도 있네오 예제 2 입력처럼 2 1 -4 3 4 -4 6 5 가 있으면 2부터 5까지 전부 더하는게 더 큰 경우가 생기듯 더했을때 생기는 이점을 고려하면서 짜면 될듯 합니다. dp를 사용해서 인덱스마다 값을 정해서 Math.max 비교로 해도 되겠네오 실수를 했었고만 꼴꼴 HTML 삽입 미리보기할 수 없는 소스
설명도 필요없다 후딱 짜봅시다. HTML 삽입 미리보기할 수 없는 소스 빈도를 Map을 활용했는데 사용이 어색해서 많이 틀렸었군요.. 조건이 또 여러개라면 두번째로 작은 값 때문에 틀렸네 안써도 풀거같은데.. 그리고 테스트 좀 잘하고 올리지 졸렸나 지금 생각으로는 산술평균 : Sum / N 중앙값 : sorting 후 N/2 idx 값 최빈값 : sorting 후 연속적으로 가장 많이 나오는 값 저장, List에 넣은 후 size() >= 2일 경우 -> 정렬 후 get(1) 범위 : sorting 후 최소값, 최대값 차 했을거 같네오
조건을 정리하면 M의 길이보다 작은건 제외, 자주나올수록, 단어가 길 수록 앞으로. 사전순으로 정리하면 된다. 단어는 1번만 나오게 해야하니까 Hash 구조를 쓰고, 얼마나 나왔는지 확인도 필요하므로 HashMap구조를 사용했다. 단어를 키로, 나온 수를 값으로 가져줬다. 그럼 뭐 쉽죵 HTML 삽입 미리보기할 수 없는 소스 기존에 편해서 scanner을 쓰고있는데 입력값이 워낙에 커서 버퍼리더로 받아줬다.. 얼른 습관 고쳐야하는데 코테보는 이후로 바로 고쳐 볼 예정이다