분류 전체보기
-
20207번 달력알고리즘 2023. 2. 10. 22:16
문제 설명 이번 문제는 다음과 같은 달력에 일정을 표시해둘 경우 코팅지를 사용하는데, 다음과 같은 규칙으로 코팅지를 붙일 경우 필요한 코팅지의 면적을 구하는 문제입니다. 연속된 두 일자에 각각 일정이 1개 이상 있다면 이를 일정이 연속되었다고 표현한다. 연속된 모든 일정은 하나의 직사각형에 포함되어야 한다. 연속된 일정을 모두 감싸는 가장 작은 직사각형의 크기만큼 코팅지를 오린다. 달력은 다음 규칙을 따릅니다. 일정은 시작날짜와 종료날짜를 포함한다. 시작일이 가장 앞선 일정부터 차례대로 채워진다. 시작일이 같을 경우 일정의 기간이 긴 것이 먼저 채워진다. 일정은 가능한 최상단에 배치된다. 일정 하나의 세로 길이는 1이다. 하루의 폭은 1이다. 문제 풀이 아이디어 정렬 일정을 붙이는 것에 순서가 있다보니 ..
-
2022년 B4 감상문기록/FEConf 2023. 2. 9. 17:04
B4 내 import 문이 그렇게 이상했나요? 팀 : toss 발표자님 : 박서진 발표의 전체적인 내용 개발을 하면서 ‘더 좋은 코드 작성법이 없을까?’, ‘더 나은 라이브러리 사용법은 없을까?’ 것은 의심을 해본적은 있지만, ‘내가 import문을 제대로 사용하고 있나?’에 대한 질문을 해본적은 없는 것 같습니다. 그렇기에 무엇을 설명하는 발표인지 궁금했고, 들어본 결과 약간의 충격?도 받은 것 같습니다. 한 번쯤은 마주쳤던 오류들 개발을 하면서 한 번쯤은 봤을 법한 ERR_REQUIRE_ESM이나 Unexpected token import와 같은 오류들의 근본적인 원인에 대해 알 수 있었습니다. 지금까지 우리가 외부 패키지나 다른 js파일의 모듈을 가져올 때 사용했던 import를 잘 못 사용했기 때..
-
17505번 링고와 수열알고리즘 2023. 2. 9. 16:39
문제 설명 이번 문제는 1~N까지의 수로 이루어진 수열 A에서 i A[j]인 개수가 K개일 수 있는지 구하는 문제입니다. K개인 수열이 있다면 해당 수열을 출력(조건을 만족하는 수열의 개수가 여러 개라면 한 개만 출력)합니다. K개인 수열이 없다면 -1을 출력합니다. 문제 풀이 아이디어 문제의 조건을 이용하는 방법 수열 A에서 i A[j]를 만족할 수 있는 경우는 앞쪽의 원소가 뒤쪽의 원소보다 큰 경우입니다. N=5인 경우에 대한 예시를 들어보도록 하겠습니다. (A = [1,2,3,4,5]) 위의 조건을 만족하는 개수가 0인 경우를 생각해보면 앞쪽의 원소가 뒤쪽의 원소보다 항상 작은 경우입니다. -> [1, 2, 3, 4, 5] 위의 조건을 만족하는 개수가 ..
-
5002번 도어맨알고리즘 2023. 2. 8. 10:15
문제 설명 이번 문제는 클럽의 출입구에서 남녀 수의 차이를 맞춰주는 도어맨이 있고 도어맨이 기억할 수 있는 수 차이의 최대값이 주어졌을 때, 이 도어맨이 아래 규칙을 지키면서 사람들을 들여보낼 수 있는 최대 수를 구하는 문제입니다. 줄의 맨 앞에 줄 서 있는 사람을 들여보내야 되는 것은 아니다. 남녀 수의 차이를 고려해 두 번째 사람을 들여보내도 된다. 문제 풀이 아이디어 탐색 이번 문제는 주어진 순서를 모두 파악해야 하므로 모두 탐색해봐야 한다. 비교는 절대값으로 앞에서부터 사람을 들여보낼 때, 도어맨이 기억할 수 있는 수 차이의 최대값을 넘기지 않는 선에서 앞 사람이나 두 번째 사람을 들여보내야 합니다. 여기서, 남자를 1, 여자를 -1이라 하면 첫 번째 사람이나 두 번째 사람을 들여보냈을 경우 현재..
-
TDD를 해보자프론트엔드 2023. 2. 7. 09:00
이번 포스팅은 필자가 생각하는 TDD를 하는 과정에 대해서 포스팅해보려고 합니다. 부족한 점이 많을 수 있다는 점 양해 부탁드립니다.... TDD를 위해서 필요한 것 1. 관심사의 분리 관심사의 분리란? 관심사의 분리란 간략하게 설명하자면 한 파일이 하나의 역할만 하도록 해주는 것입니다. React를 예시로 들자면, View역할을 하는 .tsx파일은 View의 역할만 하도록 하고, View 파일에서 사용하는 동기, 비동기 로직은 util파일이나 logic.ts파일로 나누어서 View에서는 선언만 해서 사용하도록 해줍니다. 관심사의 분리가 필요한 이유 개발을 하게 될 경우 View파일 내부에 필요한 로직까지 모두 선언 및 사용하는 경우가 많습니다. 이럴 경우 한 파일의 코드안에 view, 동기 비동기 로직..
-
2022년 A2 감상문기록/FEConf 2023. 2. 6. 15:20
A2 라이브러리 개발기@webtoon/psd 팀 : 네이버 웹툰 발표자님: 이동현, 강예형 발표의 전체적인 내용 이번 발표는 webtoon 팀에서 포토샵 파일인 .psd나 psb 파일을 웹 상에서 metadata나 실제 이미지를 미리보기 형식으로 보고 싶어 실제로 이 라이브러리를 구현했던 과정을 공유해주셨습니다. 발표는 두 파트로 나눠서 진행됐습니다. 첫 번째 파트는 실제 포토샵 파일을 읽고 데이터를 파싱하는 방법에 대한 과정을 공유해주셨고, 두 번째 파트는 성능개선을 중점으로 발표를 진행해 주셨습니다. 들으면서 들었던 생각 저번 스터디 때 필자도 toastify 라이브러리를 제작해볼 계획이었는데 어찌저찌 흐지부지 됐던 경험이 있어서 집중해서 들어본 것 같습니다. 저번 인턴 지원에 실패했던 당근도 이런 ..
-
17615번 볼 모으기알고리즘 2023. 2. 6. 10:04
문제 설명 이번 문제는 빨강색, 파랑색 볼이 주어졌을 때, 다음과 같은 규칙으로 볼을 이동시켜서 같은 색의 볼들이 모여있도록 할 때의 최소 이동횟수를 구하는 문제입니다. 바로 옆에 다른 색의 볼이 있으면 그 볼들을 모두 뛰어넘을 수 있다. 옮길 수 있는 볼의 색은 한 가지이다. 처음에 빨간 볼을 움직였다면 다음에는 파란 볼을 움직여야 한다. 문제 풀이 아이디어 공을 최소 횟수로 움직일 수 있는 순서 공들을 움직일 경우 바로 옆의 다른 색의 볼은 모두 뛰어넘을 수 있다는 규칙이 있다. 이것을 만족하되, 공을 모으는 최소 이동횟수를 구하는 움직이는 순서는 가장 자리 쪽의 공을 먼저 움직이는 것이다. 그림 1에서 파란 색 공을 움직이는 상황을 살펴보겠습니다. 만약, 4번 공을 먼저 움직인다면 6번 앞에 5번에..
-
18352번 특정 거리의 도시 찾기알고리즘 2023. 2. 5. 11:24
문제 설명 이번 문제는 각 도시마다 다른 도시로 갈 수 있는 단 방향 도로가 존재할 경우, 주어진 도시 X에서 최단 거리 K로 갈 수 있는 도시를 출력하는 문제입니다. 문제 풀이 아이디어 bfs 최단거리로 갈 수 있다는 말을 보자마자 bfs를 떠올렸습니다. 풀이 변수 단방향 도로에 대한 정보를 저장할 roads dict를 선언했습니다. bfs를 이용한 풀이를 위해 우선 queue 배열을 선언했습니다. 그리고 원소는 [0, X]와 같은 형식으로 두었습니다. (0 => 현재 이동한 횟수, X => 현재 도시 ) 그리고 해당 도시를 방문했음을 알려주는 boolean 타입의 visited 배열을 선언해주었습니다. (visited의 원소는 False로 채워줍니다.) 결과값을 저장할 result 배열도 선언해주었습..