일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- app router
- 태그된 유니온
- ESlint
- React
- MSA
- 인터섹션
- Jest
- 공변성
- webpack
- autosize
- dfs
- 리터럴 타입
- RTK Query
- Promise
- 결정 알고리즘
- CI/CD
- 반공변성
- 타입 좁히기
- recoil
- TS
- CORS
- SSR
- 무한 스크롤
- map
- async/await
- 투포인터
- 인증/인가
- useAppDispatch
- tailwind
- 호이스팅
- Today
- Total
목록전체 글 (522)
짧은코딩

투 포인터 이런 a와 b 배열이 있으면 pa = pb = 0으로 먼저 초기값을 둔다. while문을 두 배열 중 하나라도 끝에 도달하면 끝낸다. 이때 a[pa]와 b[pb]가 같으면 answer 배열에 추가 해주면된다. 하지만 다르면 두 값 중에 작은 값을 가진 pa/pb를 1 증가시킨다. 코드

Utility Types https://www.typescriptlang.org/docs/handbook/utility-types.html Documentation - Utility Types Types which are globally included in TypeScript www.typescriptlang.org utility types는 ts가 미리 만들어 놓고 가져다 쓰면 되는 타입들이다. 객체를 조작할 때 도움이 많이 된다. 직접 만들 수도 있어야 한다. 예시 Partial interface Profile { name: string; age: number; married: boolean; } const ori: Profile = { name: "ori", age: 20, married: fal..

해결법 모든 경우의 수를 다 구해야 하기 때문에 모든 경우를 다 구한 다음에 비교를 하면 된다. 이때 Set에 넣어서 구하면 된다. Set는 중복된 값을 허용하지 않기 때문에 Set를 활용하면 된다. 그리고 Set를 정렬할 때는 Array.from으로 배열로 바꿔서 하면 된다. 내 코드

해결법 이 문제는 가장 비싼 선물을 할인 받는다고 해서 선물 받을 수 있는 최대 학생 수를 구할 수 없다. 따라서 모든 경우의 수를 다 해봐야 한다. 그래도 가장 싼 선물부터 계산해보는 것이 효율적이니 오름차순으로 정렬을 했다. 그리고 for문으로 첫 번째 선물부터 마지막 선물까지 다 할인을 적용했다치고 각 경우에 대해서 계산을 해야한다. 따라서 이중 for문을 이용해서 이를 구한다. 각 선물을 계산 할 때 마다 cnt 변수를 ++해준다. 주의할 점은 product와 m은 계속 써야하는 변수라서 다른 변수에 넣어두고 사용해야 한다. 그 후에 answer에 answer, cnt 값 중 더 큰 것을 넣어주면 된다. 코드

해결법 이 문제는 4중 for문을 사용해야 한다. 먼저 처음 2중 for문은 변수를 i, j의 초기값을 1로 두고 둘 다 학생 수까지 돌려야한다. 초기값을 1로 두는 이유는 i와 j가 등수로 사용되기 때문이다. 그리고 처음 2중 for문은 모든 경우의 수를 다 돌아가도록 한다. 그 다음 2중 for문은 각각 k, s로 변수를 두고 테스트 수, 학생 수로 돌려야한다. 이때 test[k][s]가 각각 i, j와 같으면 저장을 해두고 비교하면 된다. i가 멘토, j가 멘티라서 i가 j보다 작으면 count를 올려준다. 마지막에 이 count가 테스트 결과의 수와 같으면 answer++를 해주면 된다. 코드

TS와 건망증 interface Axios { get(): void; } interface CustomError extends Error { response?: { data: any; }; } declare const axios: Axios; (async () => { try { await axios.get(); } catch (err: unknown) { console.error((err as CustomError).response?.data); } })(); 원래 ts 에러 코드에는 이렇게 밖에 없다. 하지만 위 코드의 CustomError 처럼 response를 추가하면 더 추가할 수 있다. 위 코드에다가 err.response?.data를 추가하면 위에서 선언해줬지만 ts가 건망증이 생겨서 잊어버..
공변성, 반공변성 서로 대입할 수 있고 대입할 수 없는 것을 말하는 것이 공변성, 반공변성이다. 리턴값 -대입 가능 function a(x: string): number { return +x; } a("1"); type B = (x: string) => number | string; const b: B = a; a 함수가 B에 대입이 가능하다. 왜냐하면 리턴값은 더 넓은 타입에 대입이 가능하기 때문이다. -대입 불가 function a(x: string): number | string { return +x; } a("1"); type B = (x: string) => number; const b: B = a; 이와 반대로 더 넓은 타입에서 좁은 타입으로는 대입할 수 없다. 매개변수 -대입 가능 funct..
타입 만들기 forEach -예시1 const a: Arr = [1, 2, 3]; a.forEach((item) => { console.log(item); }); a.forEach((item) => { console.log(item); return "3"; }); 이 코드가 있을 때 Arr 타입을 추론할 수 있어야 한다. interface Arr { forEach(callback: (item: number) => void): void; } const a: Arr = [1, 2, 3]; a.forEach((item) => { console.log(item); }); a.forEach((item) => { console.log(item); return "3"; }); forEach 안에 콜백 함수가 있고 리..

ARP(Address Resolution Protocol) 컴퓨터는 IP 주소에서 ARP를 통해 MAC 주소를 찾아 MAC를 기반으로 통신한다. 즉 ARP는 IP 주소로부터 MAC 주소를 구하는IP와 MAC 주소의 다리 역할을 하는 프로토콜이다. ARP: 가상 주소인 IP -> 실제 주소인 MAC로 변환 RARP: 실제 주소인 MAC -> 가상 주소인 IP 주소로 변환 -ARP의 주소 찾기 ARP Request 브로드캐스트를 보냄 -> 원하는 IP 주소를 가진 장치를 찾음 -> 찾아진 장치에서 APR reply 유니캐스트를 이용해 MAC 주소를 반환 -> 원하는 MAC 주소 얻음 브로드캐스트: 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식 유니캐스트: 고유 주소로 식별된 하..

제네릭 -틀린 예시 function add(x: string | number, y: string | number): string | number { return x + y; } add(1, 2); // 3 add("1", "2"); // '12' add(1, '2') // '12' add('1', 2) // '12' 타입을 이렇게 정하면 아래 2줄 같은 경우 때문에 에러가 난다. -제네릭 틀린 예시 function add(x: T, y: T): T { return x + y; } add(1, 2); // 3 add("1", "2"); // '12' add(true, false); add(1, "2"); // '12' add("1", 2); // '12' T는 다 같은 타입이라는 의미이다. 하지만 add(..