01타일

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

틀린 풀이

  • 계속 런타임 에러

  • dp가 아니라, 수학적으로 풀었음

  • 팩토리얼로 풀었음

    맞는 풀이

  • d[i]

    • 길이가 i 일때, 만들 수 있는 수열의 개수
    • d[i-2] + d[i-1]
  • 길이가 i인 수에는

    • 길이가 i-1인 수에
    • 00을 붙이거나
    • 1을 붙여서 만들 수 있다.
    • 하지만 00은 길이가 2 이기때문에, 붙일 수 없다.
  • 따라서

    • i-2번째에 00을 붙이거나
    • i-1번째에 1을 붙인다
  • 여기서 문제,

    • i-2번쨰에 11을 붙여서 만들 수 있지 않나?
    • 중복의 문제가 발생한다
  • 따라서,

    • i-2번째 수열에, 00을 맨 뒤에 붙이고
    • i-1번째 수열에, 1을 맨 앞에 붙인다
Read more

줄어들지않아

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

풀이

  • 처음에 계속 틀렸다고 나옴

    • 원인 : int로 변수를 설정했음
    • 해결 : long으로 바꿈
  • d[i][j]

    • i자리인 수가 j로 끝날때, 줄어들지 않는 수의 개수
  • ex

    • d[3][4] : 세 자리인 수가 4로 끝날때, 줄어들지 않는 수의 개수

      • d[3][0] : _ _ 0
      • d[3][1] : _ _ 1
      • d[3][2] : _ _ 2
      • d[3][3] : _ _ 3 => d[2][3] + d[2][2] + d[2][1] + d[2][0]
      • d[3][4] : _ _ 4
Read more

소음

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

풀이

  • 처음에 런타임에러 나옴
  • 런타임 에러 이유
    • 수를 단순 입력 후에 단순 출력했음
    • 문제의 조건에 숫자는 최대 100자리
    • 하지만,
    • int 의 범위 : –2,147,483,648 ~ 2,147,483,647
    • long long 의 범위 : –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
    • 따라서 단순 입력을 하면 100자리를 모두 담을 수 없음
  • 해결
    • 문자로 입력받고 문자를 출력
Read more

컵홀더

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

틀린 풀이

  • 가능한 컵홀더의 개수를 count
  • S L 사이에, LL LL 사이에

틀린 결과

맞는 풀이

  • 커플의 수 만큼 홀더를 사용하지 못하는 사람이 생김
  • 하지만 양 끝에 홀더가 있기 때문에,
  • 커플이 있으면
  • 커플수 - 1 만큼 홀더를 사용하지 못함

맞는 결과

Read more