hyelie
hyelie
Hyeil Jeong
       
글쓰기    관리    수식입력
  • 전체보기 (495)
    • PS (283)
      • Algorithm (28)
      • PS Log (244)
      • Contest (6)
      • Tips (5)
    • Development (52)
      • Java (14)
      • Spring (23)
      • SQL (2)
      • Node.js (2)
      • Socket.io (3)
      • Study (4)
      • Utils (4)
    • DevOps (36)
      • Git (5)
      • Docker (4)
      • Kubernetes (2)
      • GCP (3)
      • Environment Set Up (8)
      • Tutorial (12)
      • Figma (2)
    • CS (74)
      • OOP (7)
      • OS (24)
      • DB (2)
      • Network (24)
      • Architecture (0)
      • Security (2)
      • Software Design (0)
      • Parallel Computing (15)
    • Project (15)
      • Project N2T (5)
      • Project ASG (0)
      • Project Meerkat (1)
      • Model Checking (7)
      • Ideas (2)
    • 내가 하고싶은 것! (34)
      • Plan (16)
      • Software Maestro (10)
      • 취준 (8)
hELLO · Designed By 정상우.
hyelie

hyelie

PS/PS Log

22.05.13. 풀었던 문제들

1. 가장 긴 팰린드롬

시간 초과가 계속계속 난다... 그래서 최대한 줄이기 위해 긴 문자열부터 검색을 진행하고, 추가 함수도 사용하지 않고 s.substr도 사용하지 않고 index와 length만으로 검사를 하는데 잘 안된다...으으으으윽 내일 다시 봐야겠다.... 그리고 lv3 오니까 좀 어려운 문제가 많아지긴 했다.

​

2. 2 x n 타일링

문제를 잘 살펴보면

n개를 채우는 방법

- 1개짜리 n개로만 채우는 방법 = nPn (1)

- 2개짜리 1개, 1개짜리 n-2개 = (n-1)! / (n-2)!

- 2개짜리 2개, 1개짜리 n-4개 = (n-2)! / (n-4)!

이렇게 된다. 그러나 이렇게 구하면 답이 없는게 n이 6만이기 때문이다. 따라서 다른 방식을 취해주어야 한다.

​

잘 살펴보면 n이

1개 : 1 (1개짜리 1개)

2개 : 2 (1개짜리 2개 / 2개짜리 1개)

3개 : 3 (1개짜리 3개 / 1개짜리 1개 + 2개짜리 1개)

4개 : 5 (1개짜리 4개 / 1개짜리 2개 + 2개짜리 1개 / 1개짜리 0개 + 2개짜리 2개)

5개 : 8 (1개짜리 5개 / 1개짜리 3개 + 2개짜리 1개 / 1개짜리 1개 + 2개짜리 2개)

이다. dp[i] = dp[i-1] + dp[i-2]인데, 이렇게 되는 이유는

1) i-2번째 것의 마지막에 가로로 눕힌 막대를 2개 추가하는 경우

2) i-1번째 것의 마지막에 세로로 세운 막대를 1개 추가하는 경우

를 합쳐준 것이 i번재 것이 되기 때문이다. 즉, 피보나치다!

'PS > PS Log' 카테고리의 다른 글

22.05.15. 풀었던 문제들  (0) 2022.06.23
22.05.14. 풀었던 문제들  (0) 2022.06.23
22.05.12. 풀었던 문제들  (0) 2022.06.23
22.05.10. 풀었던 문제들  (0) 2022.06.23
22.05.09. 풀었던 문제들  (0) 2022.06.23
    hyelie
    hyelie

    티스토리툴바