본문 바로가기
  • 실행력이 모든걸 결정한다
반응형

전체 글580

[React] JSX expresstion must have one parent element 오류 해결 JSX expresstion must have one parent element 해당 오류는 return할 요소가 2개 이상일 때 주로 발생하는 오류이다. javascript에서 return은 하나의 요소를 리턴 할 수 있다. 여러 요소들을 리턴하고 싶다면 태그로 감싸서 하나의 요소로 묶으면 된다. 오류 메세지가 사라진 모습을 볼 수 있다. 2020. 9. 29.
동적계획법 고득점 kit 풀이 완료, 후기 코딩 테스트, 대회를 위해 대비해야 하는 필수 알고리즘중 하나이다. 동적계획법은 바로 해답을 구하는 것이 아니고, 이전에 계산했던 값을 활용하는 알고리즘이다. 동적계획법 문제는 대체로 코드가 짧지만 점화식을 세우기 어렵다는 특징이 있다. 백준에서 문제풀이를 제일 많이 했던 알고리즘인 만큼 레벨4(도둑질)에 해당하는 문제도 크게 어렵지 않게 풀었다. 프로그래머즈 문제들 뿐만 아니라 여러 동적계획법을 이용한 문제들도 포스팅 해두었으니 필요하면 참고해도 좋을 것이다. 모든 문제 [난이도 중상] 도둑질 kimcoder.tistory.com/92?category=879353 [난이도 중하] 등굣길 kimcoder.tistory.com/123?category=879353 [난이도 하] 정수 삼각형 kimcoder... 2020. 9. 28.
[동적계획법, 난이도 중하] 프로그래머즈, 등굣길 프로그래머즈의 효율성 테스트에서 숫자가 매우 커지면 실패를 출력한다는 것을 깨달았다. %1000000007을 하지 않았더라도 정확성은 만점이지만, 효율성은 0점이 나온다. 레벨3답지 않게 접근법은 매우 간단하다. dp[x][y] = (1,1) 부터 (x,y) 까지의 최단 경로의 수 맨 처음에는 dp[1][1]을 1로 두고 시작한다. 시작점=도착점이라면 경로의 경우의 수가 1이기 때문이다. 오른쪽과 아래쪽 영역을 탐색해가며 현재 영역의 dp값을 그대로 탐색중인 영역의 dp값에 더해주면 된다. 물론 탐색한 영역에 물이 있다면 더해주지 않으면 된다. 테스트 케이스 10개 정확성, 효율성 모두 만점 #include using namespace std; long long dp[101][101]; bool wate.. 2020. 9. 28.
매우 편한 데이터관리 C++ Map 사용법! Map은 key와 value쌍으로 이루어져 있는 자료구조이며, key값을 주면 key에 해당하는 value값을 반환하게 된다. map은 헤더파일에 있다. 이제 가장 기본적인 기능들을 예제 위주로 설명할 것이다. 먼저 iterator은 반복자라는 뜻이고, 데이터 집합이 주소값으로 저장되어 있는 객체이다. 1. 삽입 map[key]=value; map.insert(make_pair(key,value)); 위 2가지 방법으로 삽입 가능하다. key값은 정수가 아닌 문자열도 가능하다는 것이 map구조에서 가장 눈에 띄는 특징이다. map은 기본적으로 key값 기준 오름차순으로 정렬 된다. 2. 삭제 map.erase(key); 주어진 key와 그 key의 value쌍을 삭제한다. 3. 조회 map[key]; 주.. 2020. 9. 25.
[DFS, 난이도 중상] 프로그래머즈, 여행경로 여태 백준에서 DFS/BFS 문제를 풀 때는 노드명을 정수로 두고 풀었는데.. 노드명이 문자열이라 적응이 잘 안됐다. C++ vector의 요소들은 정수로된 인덱스로 다룰 수 있는데 , 이번 문제에서는 벡터만으로 풀기에는 꽤 난이도가 있어보였다. 그래서 파이썬의 딕셔너리와 유사한 기능을 하는 C++의 map의 도움을 받았다. map은 key와 value쌍으로 되어있는 구조이다. 하나의 출발점에서 여러 경로로 이동하는 경우를 고려해야 하므로 value에는 여러 요소를 담을 수 있는 vector을 넣기로 했고, 그 vector안에서도 도착점 정보 뿐만아니라 방문 여부까지도 알 수 있게 pair로 도착점, 방문여부 쌍을 이루었다. 모든 도시를 방문 해서 티켓을 모두 소진이 되었음을 확인 할 때 까지 dfs를 .. 2020. 9. 24.
완전탐색 고득점 kit 풀이 완료, 후기 완전탐색을 브루트 포스(brute force)라고도 많이 부르고, brute는 무식한 이라는 뜻이다. 알고리즘 설명에도 마침 '무식해 보여도 사실은 최고의 방법일 때가 있지요.' 라고 되어있다. 브루트 포스는 정말 특별한 접근법 없이 무식하게 모든 경우를 탐색하면 된다. 이 알고리즘의 장단점에 대해 설명하자면, 장점 : 다른 알고리즘에 비해 머리를 많이 쓰지 않아도 된다. 단점 : 모든 경우를 탐색하는 방법이다보니 시간복잡도가 크다. 브루트 포스 문제에서는 데이터 범위를 크게 주지 않는 편이다. 브루트 포스에서는 간단한 반복문만 써도 되는 경우도 있지만, 순열이나 조합을 써서 모든 경우를 탐색해야 하는 경우도 많다. 본인이 순열, 조합에 대해 정리한 포스팅 링크를 남겨두었으니 참고하면 좋을 것이다. 순열.. 2020. 9. 24.
[완전탐색, 난이도 하] 프로그래머즈, 모의고사 세 학생의 문제를 찍는 주기를 파악해야 하는 문제이다. 1번 수포자는 (1,2,3,4,5) 를 반복하여 찍고, 2번 수포자는 (2,1,2,3,2,4,2,5) 를 반복하여 찍고, 3번 수포자는 (3,3,1,1,2,2,4,4,5,5) 를 반복하여 찍는다. 주기는 각각 5,8,10 이다. 시험은 총 answers.size() 문제가 있고, %(나머지 연산자)를 이용하여 주기 사이클을 돌려가며 답과 비교하면 된다. 테스트 케이스 14개 모두 통과 #include using namespace std; int maxi(int a,int b){ if(a>b) return a; else return b; } int select_group1[5] = {1,2,3,4,5}; int select_group2[8] = {2,.. 2020. 9. 24.
next_permutation을 이용한 조합 구현 #include #include #include using namespace std; vector arr; vector check; void set_check(int n, int r){ for(int i=0;i 2020. 9. 23.
[React] Component 단위로 요소 검사하기 chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi/related?hl=en React Developer Tools Adds React debugging tools to the Chrome Developer Tools. Created from revision fed4ae024 on 7/15/2020. chrome.google.com Chrome 에서 이 툴을 추가한다. 요소 검사에 들어가면 Components 라는 메뉴가 추가 되었음을 알 수 있다. 본인은 Subject 라는 이름의 컴포넌트를 만들었고 Components에 들어가니 App에 Subject라는 하위 컴포넌트가 추가 된 것을 볼 수 있.. 2020. 9. 23.