- 오늘의 계획
- Inflean을 통한 react 공부하기
- 수업 소개
- 공부 전략
- 개발환경의 종류
- npm을 이용해서 create react app 설치
- create react app을 이용해서 개발환경구축
- 샘플 웹앱 실행
- JS 코딩하는 법
- 프로그래머스/백준 사이트에서 알고리즘 문제 풀이(그리디 알고리즘)
- 수업 소개
- Inflean을 통한 react 공부하기
-
오늘의 회고
- react 정리
- 리액트에서는 사용자 정의 태그를 Component라고 한다.
- 가독성
- 재사용성
- 유지보수
- npm은 프로그램을 설치하는, npx는 create-react-app이라는 프로그램을 임시로 설치하고 지우는 차이점이 있다.
- npx는 공간 낭비하지 않는다.
- 실행할 때 마다 다운로드를 새로 하기 때문에 항상 최신 버전이다.
- create-react-app을 통해 react-app을 생성하고, npm run start를 통해 실행한다.
- 처음 실행 시 생기는 public 폴더 속 index.html의 id가 root인 div 태그 안쪽에 리액트를 통해 만든 컴포넌트를 넣도록 약속했다.
- 이는 src 폴더의 파일들을 수정함으로 만들 수 있다.
- 대부분의 파일을 src 폴더에 넣어야 한다.
- 진입 파일은 index.js
- 아래의 사진에서 App /이라고 하는 컴포넌트는 실제 구현이 하단의 App.js의 div 태그 전체이다.
- 리액트는 저장을 하면 바로 reload가 된다.
- 리액트에서는 사용자 정의 태그를 Component라고 한다.
-
그리디 알고리즘 문제 풀이 : 큰 수 만들기(프로그래머스 LEVEL 2)
- 해결 방법 :
- 처음에 내장 함수 combination을 import하여 모든 경우의 수로 만든 값을 heapq에 maxHeap의 형태로 넣어 heapq의 heappop을 통해 문제를 해결하고자 하였지만 시간 초과 문제가 발생하여 다른 방식으로 문제를 해결하였다.
- 그리디 알고리즘을 활용하여 문제를 해결하였는데, 숫자가 담긴 number를 돌며 가장 큰 값이 나올 때 그 위치를 지정한 다음 그 다음 위치부터 다시 값 비교를 하는 형식으로 문제를 해결하였다.
- 이 때 시간 초과 문제가 발생하여 str형을 int형으로 변환하지 않고 그대로 비교하고, 9라는 값이 나왔을 때 바로 다음 인덱스로 넘어가도록 함으로 문제를 해결할 수 있었다.
-
코드 :
def solution(number, k): answer = '' tempPos = 0 size = len(number)-k while(size > 0): tempMax = '0' if number[tempPos] == '9': tempMax = number[tempPos] else: for i in range(tempPos, len(number) - size + 1): if number[i] > tempMax: tempMax = number[i] tempPos = i if tempMax == '9': break tempPos += 1 size -= 1 answer += tempMax return answer
- 해결 방법 :
- 2문제를 해결하는 것을 목표로 하였으나 1문제 밖에 해결하지 못하였다. 다음부터는 더 열심히 풀어보도록 해야겠다.
- react 정리