유형별 문제풀이 tony - 다이나믹프로그래밍
백준 2839번 설탕배달
유형별 문제풀이 tony - 자료구조
백준 21921번 블로그
푼 것, 배운 것
- 마지막에 최대 것의 수를 계산할 때 stream filter를 쓰면 틀리고 직접 for문 돌면서 개수를 세주면 맞는데 왜 그런지 모르겠다
- BufferedReader, BufferedWriter는 효율성 문제일 때만 써 익숙치 않아 다른 분의 풀이를 보고 학습했다
카카오 lev2 프로그래머스
2021 카카오 채용연계형 인턴십
- 문제
- 코드
- 카카오풀이
- 파이썬은 sol1, sol2으로 풀었다
- 자바는 sol3로 풀었다
푼 것 배운 것
직접 풀어봤지만 테스트 케이스 13번이 막혀서 실패
다른 분들의 풀이
sol 1
https://programmers.co.kr/questions/21304 질문하기를 보고 풀었다
- 해당 칸이 p라면 상하좌우에 p가 있으면 return 0
- 해당 칸이 o라면 상하좌우에 p가 2개 이상 있으면 return 0
- 왜 이 풀이인지는 경우의 수를 따져보면 이해간다
sol 2
bfs를 이용하여 푼 방식
- 해당 칸이 p일 때 상하좌우에 p가 있으면 return 0
- 해당 칸이 p일 때 상하좌우에 o가 있으면 o가 있는 해당칸을 다시 queue에 넣어서 o가 있는 칸의 상하좌우를 확인해서 p가
또
있다면 (맨처음 기준 칸은 방문 처리되어서 더이상 체크하지 않는다) return 0
- 주의. 정해진 범위만 체크하면 되므로 distance를 체크한다. 아니면 O인 것을 타고 계속 넘어가 버린다.
sol 3
dfs를 이용하여 푼 방식
프로그래머스 공개 답 https://programmers.co.kr/learn/courses/30/lessons/81302/solution_groups?language=java
- 기준점에서 상하좌우로만 움직여가며 거리가 2 안인 곳에서 P가 있는지만 확인한다