일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- JavaScript
- 인터넷게이트웨이
- forbetterme
- TypeScript
- 도커
- Unit Test
- mock함수
- nestjs
- 리스코프치환원칙
- axios-mock-adaptor
- axios mock
- javascript unit test
- docker
- IPv4
- 미라클모닝
- docker commands
- AWS
- 의존관계역전원칙
- 라우팅테이블
- parameter group
- VPC
- mock객체
- jest.fn
- 테스트코드
- 서브넷
- jest
- 단위테스트
- test code
- subnet
- TDD
- Today
- Total
My Dream Being Visualized
Day 5: 백준 [8단계] 기본 수학 1 - 분수찾기 본문
[결과]
[코드]
[과정]
1. 문제를 제대로 읽지 않았음. '지그재그' 라는 단어가 명시되어 있었으나 문제를 내 마음대로 이해하고 다른 문제를 풀었음
2. 시간초과된 코드는, 모든 분수를 일일이 순회했음
3. 맞은 코드는, 지그재그(=분모 분자가 swapped)를 나타내는 is_even변수, 해당 단계단 분수 갯수를 나타내는 phase변수, 각 단계의 모든 합을 나타내는 _all변수(일일이 순회하지 않기 위한 설정), number의 범위에 해당하는 phase를 찾은 후 phase 안에서 1씩 더하며 해당 number와 동일할 경우 is_even변수 값의 상태에 따라 분수 출력!
[공부]
1. 범위를 지정할 때 '숫자 < 범위 < 숫자' 같은 형태로 적어도 된다. (이전에 판다스에서는 2개로 나눴어야 했던 거 같은데 아닌가..?)
2. bool 변수를 매번 바꾸기 위해서 not '논리연산자' 사용 가능
[문제]
[선배 개발자들의 코드 분석]
1) 나는 1, 2, 3, 4... 단계별로 더해갔는데, 위 선배 개발자님은 입력변수에서 값을 빼나갔음
2) 단계별로 빼다가, n-k+1이 차이값
3) 2로 나눈 나머지가 1일 때 스왑, 나는 is_even이라는 변수를 뒀었음
>> 확실히 간단하고 더 수학적으로 코딩하신 것 같다. 내껀 복잡해보임..
[느낀점]
1. 문제를 제대로 이해하고 예제까지 꼼꼼히 검토 후 설계, 코딩하자. >> 꼼꼼히 살피자
2. 도저히 공통점을 찾을 수 없어 일일이 순회하는 코드를 만들었다가 짜증만 나고 답을 보려다가 참고 계속 했더니 뿌듯함이 컸다. 이렇게 쉬운 문제를 두고 고민한다는 내가 싫다. >> 실력 부족함이 느껴짐
3. 막상 메모장에 예시를 적어보니 공통점이 보였었다. >> 분석력이 떨어짐
Steady wins the race I believe!
'Algorithm' 카테고리의 다른 글
Day 7: 백준 [8단계] 기본 수학 1 - ACM 호텔 (0) | 2021.04.12 |
---|---|
Day 6: 백준 [8단계] 기본 수학 1 - 달팽이는 올라가고 싶다 (0) | 2021.04.12 |
Day 4: 백준 [8단계] 기본 수학 1 - 벌집 (0) | 2021.04.09 |
Day 3: 백준 [8단계] 기본 수학 1 - 손익 분기점 (0) | 2021.04.09 |
Day 2: 백준 [7단계] 문자열 - 그룹 단어 체커 분류 (0) | 2021.04.08 |