본문 바로가기

프로그램 강좌

[React]Warning: Using UNSAFE_componentWillMount in strict mode... 프로젝트 제작 중에 react-helmet 을 사용했더니 이렇게 에러가 떴네요. Warning: Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code 그것도 아주 기분나쁘게 빨간색으로... 이리 저리 찾아보니 react-helmet-async 를 설치해주면 된다고 하네요. 바로 실행에 들어갔습니다. yarn add react-helmet-async 일단은 설치를 해도 해결은 안됩니다. 맞게 설정해줘야죠. import React from 'react'; import { Helmet, HelmetProvider } from 'react-helmet-async&#.. 더보기
[프로그래머스]로또의 최고 순위와 최저 순위 - javascript 문제는 이미 알고서 답이 궁금해서 오셨을것 같으므로 풀이만 합니다. function solution(lottos, win_nums) { var answer = []; const rank = { //순위 넣을 객체 생성 6: 1, 5: 2, 4: 3, 3: 4, 2: 5, 1: 6, 0: 6 } let max = 0; // 최대값 let min = 0; // 최소값 for(let i of lottos){ if(win_nums.includes(i)) { //당첨번호와 일치한다면 카운트 max++; min++; } else if(i===0) { //최대값은 모두 맞았다는 가정하에 전부 카운트 max++; } } answer.push(rank[max], rank[min]); //맞은 갯수에 따라 등수 산정 re.. 더보기
[프로그래머스]여행경로 - javascript 구글링 검색 검색 후 해석. 알고나면 참 아무것도 아닌데 아직은 어렵네요. function solution(tickets) { let routes = []; function DFS(extra, current, route){ // extra(잔여티켓): [["ICN", "JFK"], ["HND", "IAD"], ["JFK", "HND"]] // current(현재위치): "ICN" // route(여행경로): ["ICN"] if (extra.length === 0) { routes.push(route); //잔여티켓 연산이 끝나면 routes로 정보전송 } //티켓 모두 사용 else { extra.forEach(([s, e], index) => { //s: 출발, e: 목적지 //index: 인덱스번호 .. 더보기
[프로그래머스]단어변환 - javascript 예시 ㅇㅇ 첫번째 시도 왜 자꾸 틀린값이 나올까 궁금했는데 값을 확인해보니 레벨값을 안정해줘서 무조건 카운트 하는거였네요. function solution(begin, target, words) { var answer = 0; // 카운트 let ch = []; //방문여부 let queue = []; if(!words.includes(target)) return 0; queue.push(begin); while(queue.length){ let v = queue.shift(); let len = queue.length; if(v===target) return answer; words.forEach(word => { let notEqual = 0; if(ch.includes(word)) return; f.. 더보기
[프로그래머스]네트워크 javascript 그림을 안보고 문제를 풀려고 했어서 이해하는데 괜한 시간을 허비했다. 사실 알고보면 정말 간단한 문제인데... 입출력 예 n computers return(answer) 3 [[1, 1, 0], [1, 1, 0], [0, 0, 1]] 1 3 [[1, 1, 0], [1, 1, 1], [0, 1, 1]] 2 왜 이게 1개야, 이건 왜 2개야 로 한참 헤맸다. 그림 보자마자 아... 1개 맞네, 2개 맞네가 되었다. 풀이 우선 한번 지나간 길은 또 지나가지 말자는 차원에서 ch 배열을 만들었고, 모두 0(false)로 정했다. 그리고 맨 아래 for문으로 해당 영역이 지나간적 없는지 확인하고, DFS를 실행시킨다. DFS가 실행되면 해당 영역은 check 하고(1로 변환), 연결된 경로가 있는지 확인한다. 만.. 더보기
[프로그래머스]타겟 넘버 - javascript 예시) -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 주어진 숫자들을 더하고 빼서 타겟 값을 만드는게 목표입니다. 딱 문제를 보자마자 완전 탐색으로 풀어야겠구나가 떠올랐습니다. 기본으로 주어지는 var answer... 이상하게 거슬리네요. 굳이 고칠 필요는 없어보여서 그냥 냅뒀습니다. function solution(numbers, target) { var answer = 0; function DFS(L, sum){ if(L===numbers.length) { if(sum===target) answer++; } else { DFS(L+1, sum+numbers[L]); DFS(L+1, sum-numbers[L]); .. 더보기
Visual Studio 2019 설치 방법 C언어 설치방법(윈도우 기준) (https://visualstudio.microsoft.com/ko/) 2019년 버전으로 설치: 릴리즈 > 2019 선택 후 배포 탭 누르면 > 다운로드 버튼 보임 ※ 2022년 설치 후 에러가 나긴 했지만, 굳이 설치할 필요성 없어 보임 워크로드 C언어 템플릿(데스크탑용으로 개발) 선택 하면 필요 모듈이 설치가 됨 새프로젝트 만들기 빈 프로젝트 선택(C++) 프로젝트 생성되면 좌측에 솔루션 탐색기 보임 소스 파일 > 추가 > 새 항목 파일명.c 로 새 파일 생성 Hello world 기본 구성 모듈에 대해 알아보고 Hello World 입력 #include int main() { printf("Hello World"); } 더보기
[LeetCode]26. Remove Duplicates from Sorted Array Input/Output Input Output 1,1,2 2 0,0,1,1,2,2,3,3,4 5 1차시도(성공) 성공이긴 했지만, 이중 for문을 썼더니 너무 런타임이 오래 걸렸다. 2차시도에는 다른 사람들이 푼걸로 숙지했다. var removeDuplicates = function(nums) { for(let i=nums.length-1;i>0;i--){ for(let j=i-1;j>=0;j--){ if(nums[i]===nums[j]){ nums.splice(j,1); } } } }; 2차시도 비교값이 같으면 중지하고 반복문의 처음으로 이동. 다르면 k값을 증가시키고 다른값을 복사, 값을 바꾸는 이유는 k값이 다음 비교를 위한 기준값이기 때문. var removeDuplicates = function.. 더보기