211228 화 Algorithms TIL

bongf·2021년 12월 28일
0

알고리즘TIL

목록 보기
45/153

유형별 문제풀이 tony - 다이나믹프로그래밍

백준 2839번 설탕배달

유형별 문제풀이 tony - 자료구조

백준 21921번 블로그

푼 것, 배운 것

  • 마지막에 최대 것의 수를 계산할 때 stream filter를 쓰면 틀리고 직접 for문 돌면서 개수를 세주면 맞는데 왜 그런지 모르겠다
  • BufferedReader, BufferedWriter는 효율성 문제일 때만 써 익숙치 않아 다른 분의 풀이를 보고 학습했다

카카오 lev2 프로그래머스

2021 카카오 채용연계형 인턴십

푼 것 배운 것

직접 풀어봤지만 테스트 케이스 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가 있는지만 확인한다
profile
spring, java학습

0개의 댓글