ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1/11기록 - 백준 2846
    Algorithm 2022. 1. 11. 10:15
    728x90

    백신 부스터샷을 맞고 혹시나 아프면 안하려고 했지만, 뭔가 괜찮은 듯 하여 오늘은 브론즈 2티어의 백준 2846 오르막길 문제를 도전해 보았다.

     

     

    입력 예제를 보고 문제에 예를 든 것을 보고 나서야 겨우 이해가 되었다. 문제가 희한한 건지 백신 때문에 머리가 안돌아가는 건지...

     

    어쨌든 오늘의 문제를 살펴보면, 증가하는 부분 수열이 오르막길이 되고 그런 오른 막길 중 가장 큰 오르막길을 찾아 시작지점과 끝지점을 뺀 값을 찾아 내는 문제이다.

     

    알고리즘 생각

    1. N 숫자 입력 받기(BufferedReader, StringTokenizer 사용)

    2. 크기 N의 배열 선언

    3. N만큼 for문을 돌려서 숫자를 N개 입력 받아 배열에 넣어줌

    4. N만큼 for문을 돌리고 만약, 오르막길이라면 뒤-앞을 해서 임시 temp변수에 넣어줌, 오르막길이 아닌 경우라면 그냥

       0을 넣어서 출력함

    5. 임시 변수에 담아준 값과 출력할 result값을 for문 안에서 N번 비교하여 높은 수를 result에 담아줌

    6. 최종적으로 가장 높은 수인 result를 출력함

     

     

     

    새로운 result 변수를 선언해 주는 작업이 꽤 어려운 작업이었다. 처음엔 단순히 temp를 출력시키는 것을 생각했는데, 이렇게 하니 두번째 입력 결과에서 잘못된 수가 나오게 된다. 그냥 처음부터 오르막길을 만나면서 누적된 temp값이 그대로 출력되게 되기 때문이다. 반드시 for문 안에서 result값을 오르막길을 만나서 새로운 값이 들어올 때 마다 비교해서 max 값을 만들어 주고 result값을 출력해야 했다.

     

    --1/11 백신 부스터샷 맞고 푼 알고리즘 문제 기록 끝--

    728x90

    'Algorithm' 카테고리의 다른 글

    1/12기록 - 프로그래머스 문제풀이 #2  (0) 2022.01.12
    1/12기록 - 프로그래머스 문제풀이 #1  (0) 2022.01.12
    1/10기록 - 백준 1009  (0) 2022.01.10
    1/7 기록 - 백준 1712번  (0) 2022.01.07
    1/6 기록 - 백준 1297  (0) 2022.01.06
Designed by Tistory.