ji_iin
iOSLog
ji_iin
전체 방문자
오늘
어제
  • 분류 전체보기 (56)
    • Swift (8)
    • iOS (6)
    • 알고리즘 (34)
    • CS (3)
    • 회고 (3)
    • 제품리뷰 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • SWiFT
  • 자바
  • 깊은복사와 얕은복사
  • 깊이우선탐색
  • 회고
  • Bye2023
  • 파이썬
  • 백준
  • 재귀
  • 대기업코테
  • opional
  • 너비우선탐색
  • django
  • 공식문서
  • 그래프이론
  • 그래프탐색
  • 프로그래머스
  • 수학
  • 개발회고
  • 백트래킹
  • swiftUI
  • Python
  • 브루트포스 알고리즘
  • ios
  • 알고리즘
  • 정렬
  • 2022년 회고
  • 다이나믹 프로그래밍
  • 구조체와 클래스
  • 알고리즘개념

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ji_iin

iOSLog

알고리즘

[JAVA] 백준 7569번 - 토마토

2021. 7. 25. 15:33

문제

7569번: 토마토

[ 문제 조건 ]

  • 입력
    • 1 = 익은 토마토
    • 0 = 익지않은 토마토
    • -1 = 토마토 없음
  • 출력
    • 0 = 저장될 때 모든 토마토 익음
    • 1 = 모든 토마토 익지 못함
    • n = 모두 익을 때 까지 최소 며칠이 걸리는지
  • 보관 후 하루가 지나면 익은 토마토와 인접한 건 익음

[ 해결순서 ]

  1. 여태까지 풀던 문제는 상하좌우만 비교해서 해결하면 됐으나, 위 아래도 비교해서 6가지 경우를 비교해야한다.
  2. 3차원 배열로 가로,세로,높이의 값을 입력받고 너비우선탐색의 대상은 익은 값만 이므로 입력받을 때, 토마토가 익은 것들만 큐에 넣는다.
  3. 큐에 넣은 것들을 하나씩 꺼내며 너비우선탐색 한다.
    1. 기존 유사한 BFS 문제의 조건 비교에서 (가로, 세로 비교했던 것) 추가로 높이만 비교하고
    2. 토마토가 익었으면 (값이 0) 그 값을 큐에 넣어주고 기존 값 +1 값을 너비우선탐색한 배열에 넣는다.
  4. 이제 박스의 모든 값들을 꺼내면서 출력 조건에 맞게 출력한다. (자세한 건 주석확인)

✏️한줄평

문제 자체의 해결은 조금만 생각하면 이해가 됐는데, 처음 입력받을 때 M,N으로 변수 설정을 해놓고 뒤에 가서 코드를 작성하다보니 어떤 것이 X이고 Y인지 헷갈려 반대로 넣는 바람에 자꾸 인덱스 범위 벗어났다는 에러가 떴다. 이거 때문에 한시간 잡아먹은,,, 휴우,, 그래도 얻은게 많은 문제였다. 너비우선탐색 문제를 좀 더 자세히 알아간 기분이다.


코드

'알고리즘' 카테고리의 다른 글

[JAVA] 백준 1245 - 농장 관리  (0) 2021.07.26
[JAVA] 백준 11057 - 오르막 수  (0) 2021.07.25
[JAVA] 백준 1991번 - 트리순회  (0) 2021.07.19
[JAVA] 백준 2667번 - 단지번호붙이기  (0) 2021.07.19
[JAVA] 백준 1697번 - 숨바꼭질  (0) 2021.07.19
    '알고리즘' 카테고리의 다른 글
    • [JAVA] 백준 1245 - 농장 관리
    • [JAVA] 백준 11057 - 오르막 수
    • [JAVA] 백준 1991번 - 트리순회
    • [JAVA] 백준 2667번 - 단지번호붙이기
    ji_iin
    ji_iin
    개발성장일지🐥

    티스토리툴바