일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준 2467번 용액 자바 - 이분탐색
- 백준 1806번 부분합 java
- 백준 14938번 서강그라운드
- HashSet
- 백준 1647번 도시 분할 계획 - java
- replace()
- 프로그래머스 자바
- map
- 프로그래머스 java
- ac 5430번
- 백준 3190번
- mysql hy000 에러
- 백준 1197번 최소 스패닝 트리 - java
- toUpperCase
- StringBuilder
- 백준 1541
- 백준 1043번 거짓말 - java 분리 집합
- 최소 힙 1927
- dp
- 프로그래머스
- kotlin
- 코틀린기초
- 18111번 마인크래프트 - java 구현
- Stack
- Java
- hash
- 백준 2473번 세 용액 - java
- StringTokenizer
- HashMap
- append
- Today
- Total
목록알고리즘 (138)
말하는 컴공감자의 텃밭
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bzwjfl/btsFQthQP9h/NsxF8zWa7Pq7NCdEHPoSeK/img.jpg)
질투심이 많아서 가장 많이 가진 사람이 가장 적게 받을 수 있게 해야한다. 보석은 한명에겐 한 종류만 가능!~~!~ 이분탐색을 기본으로 가져가고, 나눠줄 수 있는 보석을 탐색해주었다. 보석 수 % 사람 == 0 이라면 최대한 잘 나눈것이므로 그 값을 찾아서 가장 적은 값을 찾아주었다. HTML 삽입 미리보기할 수 없는 소스 이분탐색... 요놈 디버깅하기가 어렵다
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/OMsnP/btsFUIKYkq2/NREiDXar5kpknPLKmdEdY1/img.jpg)
효주도 와인이 마시고 싶었나 보다. 되도록이면 많이 DP로 최대한 많이 마실 수 있는 양을 찾아줍시다. 3잔 연속으로 못마시므로 이전 와인을 마시게 된다면 idx - 3에서의 최대값을 써야겠죠 HTML 삽입 미리보기할 수 없는 소스 간단쑤
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dz0H1C/btsFqLImbYx/NB0WpOdgetDEqNhTwk5ptK/img.jpg)
레스고 어푸어푸 싸피 친구가 이거 문제 어떻게 풀지 궁금하대서 두달전에 줬었는데 정신없어서 한달 후에야 해결하고 그걸 또 한달만에 정리한다. 에호 이놈아 특징 1.소용돌이가 등장한다. 🚨 -> 텀은 2초동안 유지되고 생성되고 반복 (0초,1초, 2초에 사라짐. 3,4초에 나왔다가~ 5초에 사라지고) 2. 소용돌이로는 이동할 수 없다. -> 사라지고 이동~ 3. 만약 내 위치에 소용돌이가 생긴다면 그때는 이동 가능하다. 소용돌이는 어떻게 처리? ⚓ -> % 3 == 2로 확인하고 처리해주자 고고 HTML 삽입 미리보기할 수 없는 소스 그래프 문제는.. 참 재밌따.. 요즘 객체활용도 익숙해져서 좋구.. 코드가 길긴하지만.. 미리미리 테스트 해가면서 문제점을 짚어줍시다.. 우르르 왁왁 다썼다가 꼬이면 힘들더라..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bXQg34/btsFmliu00I/L7G98AArZ8SlAp2YP1tam1/img.jpg)
아 집중 좀 하고 풀껄 후딱 풀거같아서 설렁설렁 확인하다 한참 걸린 문제다. 별것도 아닌게 스터디 재밌당 ^ HTML 삽입 미리보기할 수 없는 소스 에잉..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pMTKi/btsFhS8mibC/peH6QwKuvXT5OhNcikYDCk/img.png)
이것도 문제 이해하는데 조금 걸렸었다. 단순하게 생각하면 연결리스트 처럼 쭉 이어주면 되는 문제였다. { 1,2,3,4,5 }가 존재하면 2랑 3을 연결하고, {1, 2-3, 4, 5} 1과 2를 연결하면 {1-2-3, 4, 5} 4와 5를 연결하면 {1-2-3, 4-5} 마지막으로 1이랑 4를 연결하면 {1-2-3-4-5} 가 완성된다. 따라서 이어주면 머리랑 꼬리를 구별해주려 했으나 그냥 단순히 한 경로로 생각해서 이어주면 되겠구나 싶었다. 뭉쳐진 부분의 끝을 배열에 저장만 해주면 해당 인덱스로 이동하고 값을 넣어주다가 마지막에 가르키는 곳이 없다면 종료. HTML 삽입 미리보기할 수 없는 소스
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cN3BU7/btsFgsihImi/1YGPDZk5GauCBVkrwf7H0K/img.jpg)
문제를 잘 읽자 확실히 사업가는 다르다, 최솟값을 찾아야한다. 100명의 홍보를 원한다 하더라도 100명 이상의 비용이 더 저렴하다면 그 값을 출력해야했다. 간단하게 입력 받은 금액 당 홍보 인원을 통해 현재 인원 - 입력받은 인원으로 따져서 금액을 최신화 해주었다. 현재 인원에 대한 금액 최신화 -> 현재인원 - 입력 받은 인원 + 입력받은 금액 이랑 비교 + 추가로 금액의 최대가 100 이므로 +101 까지만 조회해서 효율을 챙겼다. HTML 삽입 미리보기할 수 없는 소스
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b0KKkq/btsEWNHUxkA/x2hp7E2x8B4zQoTnJXVdvk/img.png)
하필 또 술먹고 풀어서 머리가 많이 안굴러가 고생한 문제다. 가장 많은 빌딩을 볼 수 있을때 몇개나 볼 수 있는지 구하는 문제이다. 처음에는 어떤 기준으로 보이려나 감이 안잡혀서 그림으로 표현해서 해결했다. 답은 기울기 였다. 현재 내가 있는 빌딩에서 바라보려는 빌딩의 사이가 막혀있다면 볼 수 없으니 기울기를 통해 이를 판단했다. 기울기 판단은 (현재 높이 - 판단할 빌딩 높이) / (현재 위치 idx - 판단할 빌딩 idx) 로 해주었다. 위 계산 방식으로 판단하면 왼쪽의 경우 기울기가 기준보다 크다면 볼 수 없고, 오른쪽의 경우 기울기가 기존보다 작다면 안보일것이다. 먼저 노랑색 포인트를 기준으로 예시를 들겠다. 현재 7높이의 위치하고 있고, idx는 12번이다. 양쪽은 언제나 확인할 수 있으며 그 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qKbRd/btsE942keYp/xcFGREgiPE5i0fHkLCXV1K/img.jpg)
처음엔 이게 뭐지 감을 못잡았다. 무슨말이래 파일은 바로 옆에있는것만 합칠 수 있고, 순서에 따라 합이 달라지는데 우리는 최소값을 구해주면 된다. 누적합 문제죠~?~ 범위를 2차원 배열로 정해서 DP로 범위를 나눠주기로 했다. 위 예제만 봐도 알겠지만 연산이 가장 적은게 훌륭하다. 최종 값은 결국 두 덩이를 합치는것이다. 하나를 A 하나를 B로 정한다면 합쳐진 A와 합쳐진 B가 더해져서 값을 구하는것 이므로 범위를 정하고, Mid를 조정해서 최소값을 찾아주면 되겠다. 범위를 늘려나가면서 저장해 준다. range 변수를 1부터 증가시켜 N 까지 더한 값으로 올라가고, start와 end 변수로 인덱스를 할당한다. 범위의 최소값을 구하고, 누적합을 통해 중간 연산을 더해준다. -> 누적합은 end에서 sta..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cIZIr1/btsEeLQSr5M/99byWZqfiK8tLRKUu85MY0/img.jpg)
문제가 너무 간단해 보였는데.. 진짜 한참 한참 걸린 문제다. 열받으면서 풀었는데 까먹을까봐 까먹을랑 말랑할때 정리한다. 먼저 지름길 갯수와, 거리가 주어진다. 지름길은 시작점과 끝점, 소모되는 시간이 주어지고 지름길이 오히려 더 길게되는 경우도 존재한다. 또한 고속도로이므로 역주행은 불가능하다. 150이 도착지점이면 정확히 150이어야 한다. 일반 고속도로의 경우 1당 1의 거리를 지닌다. 최솟값을 찾아야 하므로 효율이 좋은 지름길을 활용해서 도착점에 도달하면 되겠다. 초기에 이차원 배열을 통해 DP로 해결하려 접근했었다. 지름길을 통하면 이전에 대한 값과 비교해서 업데이트하고, 다시 그 이후의 길을 업데이트 하는식으로 말이다. 예제는 전부 옳게되었으나 문제가 발생했다. 지름길이 겹치는 경우였다. 로직..