나누기

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

틀린 풀이

  • n의 최고자리수를 제외하고 다 0으로 만들기

    ex) n이 2031이면 => 2000으로

  • f로 나누어 떨어지는지 확인. 나누어 안 떨어지면 +1

  • 끝 두자리 출력

  • 계속 틀렸다고 뜸..

옳은 풀이

  • 굳이 Math 안써도 됨
  • 100으로 나눈 몫에 100을 곱하면 됨
Read more

동물원

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

틀린 풀이

  • 동물 수에 따라 식을 세우려고 함

      d[1] : 동물 한 마리 들어갔을 때 경우의 수
    

    ​ d[2] : 동물 두 마리 들어갔을 때 경우의 수
    ​ …

  • 이런식으로 하면 d[n-1] 과 d[n] 을 연결시키기가 어려움

옳은 풀이

  • n-1 번째 줄 까지 우리에 맞게 들어갔다고 보고

  • n 번째 줄에 어떻게 올 수 있는지 고려해야함

    • d[n][0] : n 번째 줄에 왼쪽만 사자가 들어감
      • n-1번째 줄에 오른쪽만 들어가거나, 아예 안들어감
    • d[n][1] : n 번째 줄에 오른쪽만 사자가 들어감
      • n-1번째 줄에 왼쪽만 들어가거나, 아예 안들어감
    • d[n][2] : n 번째 줄에 안들어감
      • n-1번째 줄에 오른쪽만 들어가거나, 왼쪽만 들어가거나, 아예 안들어감
Read more

상자 넣기

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

풀이

  • dp

  • 가장 긴 증가하는 수열과 같은 문제

  • d[i] : i 를 마지막으로 하는 가장 긴 증가하는 수열

  • d[i]

      0 번째 ~ i-1 번째까지 조사.
    

    ​ k번째에서 i번째 수보다 작고, 더 긴 증가하는 부분수열이 된다면
    ​ d[i] = d[k] + 1

Read more