[백준] 17265번 나의 인생에는 수학과 함께 - Java

2022. 6. 5. 03:22· Algorithm/백준 문제풀이

 

 

문제출저 : 

https://www.acmicpc.net/problem/17265

 

17265번: 나의 인생에는 수학과 함께

세현이의 인생의 목표는 1분 1초 모든 순간 수학과 함께 살아가는 것이다. 그렇기 때문에 매일 수학을 생각하면서 살아가고 있다. 세현이는 밥을 먹을 때도 쌀알의 수를 계산하여 칼로리를 바로

www.acmicpc.net

 

 

소스코드 : 

package studyGroup.June.june4;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
import java.lang.*;

public class 백준17265나의인생에는수학과함께 {

    static int n;
    static String[][] board;


    // 오른쪽이랑 아래만 이동 가능
    static int[] dy = {0,1};
    static int[] dx = {1,0};

    static Queue<dot> que;

    static int big;
    static int small;



    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        n = Integer.parseInt(br.readLine());
        board = new String[n+1][n+1];

        for(int i = 1; i <= n; i++)
        {
            String[] one = br.readLine().split(" ");

            for(int j = 1; j <= n; j++)
            {
                board[i][j] = one[j-1];
            }
        }

        big = Integer.MIN_VALUE;
        small = Integer.MAX_VALUE;

        que = new LinkedList<>();
        que.add(new dot(1,1,Integer.parseInt(board[1][1]),""));

        while(!que.isEmpty())
        {
            dot d = que.poll();

            if(d.y == n && d.x == n)
            {
                big = Math.max(big, d.number);
                small = Math.min(small, d.number);
                continue;
            }

            for(int i = 0; i < 2; i++)
            {
                int ny = d.y + dy[i];
                int nx = d.x + dx[i];

                if(ny >= 0 && ny <= n && nx >= 0 && nx <= n)
                {

                    String s = board[ny][nx];




                    if(Character.isDigit(s.charAt(0)))
                    {


                        int num = Integer.parseInt(board[ny][nx]);
                        if(d.opr.equals(""))
                        {
                            dot newd = new dot(ny, nx, num, d.opr);
                            que.add(newd);
                        }
                        else if(d.opr.equals("+") )
                        {
                            dot newd = new dot(ny, nx, d.number + num, d.opr);
                            que.add(newd);
                        }
                        else if(d.opr.equals("-") )
                        {
                            dot newd = new dot(ny, nx, d.number - num, d.opr);
                            que.add(newd);
                        }
                        else if(d.opr.equals("*") )
                        {
                            dot newd = new dot(ny, nx,  d.number * num, d.opr);
                            que.add(newd);
                        }
                    }
                    else
                    {
                        que.add(new dot(ny, nx, d.number, board[ny][nx]));
                    }

                }
            }
        }

        System.out.println(big + " " + small);
    }


    public static class dot
    {
        int y;
        int x;
        int number;
        String opr;

        dot(int y, int x, int number, String opr)
        {
            this.y = y;
            this.x = x;
            this.number =number;
            this.opr = opr;
        }
    }

}
'Algorithm/백준 문제풀이' 카테고리의 다른 글
  • [백준] 10800번 컬러볼 - Java
  • [백준] 1043번 거짓말 - Java
  • [백준] 14945 불장난 - Java
  • [백준] 1516번 게임 개발 - Java
너지살
너지살
너지살
너지살개발자
너지살
전체
오늘
어제
  • 분류 전체보기 (375)
    • 잡식 (2)
      • 티스토리 (2)
    • 개발 일지 (0)
      • OMS 프로젝트 (4)
      • 우테코 6기 프리코스 (1)
    • Git (2)
    • JAVA (15)
      • Java 공부 (6)
      • 자료구조 (4)
      • 도움되는 메모 (4)
    • DevOps (18)
      • AWS (6)
      • Docker (2)
      • Jenkins (1)
      • Nginx (1)
      • Kafka (6)
      • RabbitMQ (2)
    • Spring, Spring Boot (16)
      • Test Code (1)
      • AOP (2)
      • Batch (3)
      • Cache - Redis (5)
      • Cloud Config - 설정 파일 관리 (3)
      • 성능 측정 (1)
      • 예외 처리 (1)
    • BackEnd (1)
      • Spring 공부 (1)
      • Thymeleaft (0)
    • DB (17)
      • JPA (2)
      • DB 공부 (3)
      • DB 포스팅 (4)
      • DB 답장 (1)
      • MySQL (2)
      • Redis (5)
      • MongoDB (0)
    • CS (8)
      • Spring (4)
      • DataBase (3)
      • Java (1)
    • Algorithm (203)
      • 알고리즘 개념 (5)
      • 정렬 알고리즘 (11)
      • 프로그래머스 문제풀이 (18)
      • 백준 문제풀이 (165)
      • 소프티어 문제풀이 (3)
      • 알고리즘 시험 정리 (1)
    • SQL (0)
      • 문법 (1)
      • 프로그래머스 문제풀이 (52)
      • 리트코드 문제풀이 (19)
    • IT (1)
      • IT 공부 (1)
    • 정리 (10)
      • 질문 정리 (10)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Spring Boot
  • Next permutation
  • DP
  • 최소 스패닝 트리
  • 소프티어
  • 분리 집합
  • 질문 정리
  • cache
  • 두 포인터
  • 경로표현식
  • 다음 순열 찾기
  • db
  • Algorithm
  • Union-Find
  • Java
  • Spring Boot Redis 연결
  • 그래프 이론
  • 백준
  • redis
  • Java 정리
  • DFS
  • 비트마스킹
  • 부분탐색
  • docker
  • JPA
  • 다이나믹프로그래밍
  • 최소 신장 트리
  • git
  • 투 포인터
  • two pointer
  • dynamiceprogramming
  • 설정
  • 다이나믹 프로그래밍
  • Sorting algorithm
  • 알고리즘
  • Test code
  • dynamic programing
  • 크루스칼 알고리즘
  • Spring Batch
  • 투포인트
  • 외판원 순회 문제
  • 데이터베이스
  • MST
  • 깊이/너비 우선탐색
  • 우선수위큐
  • 유니온파인드
  • 그래프 탐색
  • Bitmast
  • 병렬 처리
  • 자료구조

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
너지살
[백준] 17265번 나의 인생에는 수학과 함께 - Java
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.