목록2022/05 (129)
치춘짱베리굿나이스
Custom Hook 코딩을 하다 보면 (당연히도) 반복적인 로직이 굉장히 많이 나오게 된다 예를 들면, 버튼을 눌렀을 때 특정 상태값이 바뀌게 하는 로직, input에 값을 입력하면 상태값이 같이 변하는 로직 등... 매 컴포넌트마다 useState, useEffect를 손수 달아주기보단 훅을 직접 만들어서 필요할 때마다 불러와 사용하면 몇십줄 재선언해야할 게 한두줄이면 끝난다 예시 Axios 코드 axios.get('링크') .then(res => { console.log(res); setState(res.data); }) .catch(e => { console.log(e); }); 어떠한 API에 GET 요청을 보내는 axios 코드가 있다 보통 API에 요청을 보내는 건 컴포넌트가 Mount될 때..
코 테 후 기 대기업 코테를 잘 풀 자신은 아예 없고 그냥 기업 코딩 테스트가 어떤 느낌으로 나오고 어떻게 시험을 치는지 경험해 보고 싶었다 막상 자소서 쓸라구 하니까 적을 프로젝트가 마땅찮은건 조금 슬펐다 (42 과제나 열심히 하시죠) 그래서 라이언과 춘식이의 회사.. 카카오 인턴 코딩테스트를 지원해보았고 다른 친구의 추천으로 (?) 우아한 테크캠프 코딩테스트도 지원해보았다 카카오 어 렵 다 어려웠다... 이제 막 BFS DFS DP 배워서 배열이랑 큐 선언하고 낑낑거리는 알.늅 (알콜뉴비 아님 알고리즘뉴비임) 이 손대기엔 좀 그런 문제였다 그래프까진 적어도 훑고 왔어야 문제가 읽혀질 것 같았다 물론 나는 다익스트라나 프림?이나 뭐 그런거... 정말 혓바닥만 잠깐 대고 뗀 수준이고 노드랑 간선의 존재만..
수 정렬하기 4 문제 N개의 수가 주어졌을 때, 이를 내림차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 내림차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 풀이 const sort = () => { let [n, ...arr] = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split("\n") .map(Number); console.log(arr.sort((a, b) => b - a).join("\n"))..
TV 크기 문제 김탑은 TV를 사러 인터넷 쇼핑몰에 들어갔다. 쇼핑을 하던 중에, TV의 크기는 그 TV의 대각선의 길이로 나타낸 다는 것을 알았다. 하지만, 김탑은 대각선의 길이가 같다고 해도, 실제 TV의 크기는 다를 수도 있다는 사실에 직접 TV를 보러갈걸 왜 인터넷 쇼핑을 대각선의 길이만 보고있는지 후회하고 있었다. 인터넷 쇼핑몰 관리자에게 이메일을 보내서 실제 높이와 실제 너비를 보내달라고 했지만, 관리자는 실제 높이와 실제 너비를 보내지 않고 그것의 비율을 보내왔다. TV의 대각선 길이와, 높이 너비의 비율이 주어졌을 때, 실제 높이와 너비의 길이를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 TV의 대각선 길이 D, TV의 높이 비율 H, TV의 너비 비율 W이 공백 한 칸을 사이에 두고..
거의 소수 문제 어떤 수가 소수의 N제곱(N ≥ 2) 꼴일 때, 그 수를 거의 소수라고 한다. 두 정수 A와 B가 주어지면, A보다 크거나 같고, B보다 작거나 같은 거의 소수가 몇 개인지 출력한다. 입력 첫째 줄에 왼쪽 범위 A와 오른쪽 범위 B가 공백 한 칸을 사이에 두고 주어진다. 출력 첫째 줄에 총 몇 개가 있는지 출력한다. 제한 1 ≤ A ≤ B ≤ 10^14 풀이 const almost = () => { let [a, b] = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split(" ") .map(Number); let eratos = Array.from({ length: 10000001 }, (n, i) => i === 1..
심부름 가는 길 문제 승균이는 매일 학교, PC방, 학원에 다닌다. 반복되는 일상에 익숙해진 승균이는 이동시간을 단축해서 PC방에 더 오래 머물고 싶었다. 그래서 스톱워치를 들고 이동할 때마다 기록을 잰 후 집에 가서 분석해보기로 했다. 집에 도착한 승균이는 측정한 결과를 보는 데, 전부 초 단위로 기록되어있다! 맨날 놀기만 해서 총 이동 시간이 몇 분 몇 초인지 계산을 못 하는 승균이를 도와주자. 하루 동안 측정한 결과가 주어지면, 이날의 총 이동 시간이 몇 분 몇 초인지 출력하는 프로그램을 작성하시오. 입력 입력은 총 4줄이며, 한 줄에 하나씩 양의 정수가 적혀있다. 첫 번째 줄에 집에서 학교까지의 이동 시간을 나타내는 초가 주어진다. 두 번째 줄에 학교에서 PC방까지의 이동 시간을 나타내는 초가 주..
스타워즈 로고 문제 스타워즈 로고를 예제 출력과 같이 출력하는 프로그램을 작성하시오. 출력 스타워즈 로고를 출력한다. 풀이 const starwars = () => { console.log( " 8888888888 888 88888\n 88 88 88 88 88 88\n 8888 88 88 88 88888\n 88 88 888888888 88 88\n88888888 88 88 88 88 888888\n\n88 88 88 888 88888 888888\n88 88 88 88 88 88 88 88\n88 8888 88 88 88 88888 8888\n 888 888 888888888 88 88 88\n 88 88 88 88 88 88888888" ); }; starwars(); 반성회
콜센터 문제 스타워즈에 등장하는 로봇인 C3PO는 요즘 콜센터에 근무하고 있다. 콜센터에 앉아있는 C3PO를 그리는 프로그램을 작성하시오. 출력 예제 출력처럼 콜센터에 앉아있는 C3PO를 출력한다. 마지막 세 줄의 두 '|' 사이에는 공백이 10개 있다. 풀이 const c3po = () => { console.log( " /~\\\n ( oo|\n _\\=/_\n / _ \\\n //|/.\\|\\\\\n || \\ / ||\n============\n| |\n| |\n| |" ); }; c3po(); 반성회 졸림