본문 바로가기

전체 글521

[백준JS] 10812. 바구니 순서 바꾸기 안녕하세요. 박기린 입니다. 백준 10812번 바구니 순서 바꾸기 문제를 풀어봅시다. 문제 링크 https://www.acmicpc.net/problem/10812 문제 해석 N개의 바구니가 있습니다. 원활한 설명을 위해, N이 7이라고 가정을 합니다. 각 바구니에는 순서에 맞는 숫자가 담겨 있습니다. 입력으로는 [i, j, k]가 들어옵니다. i부터 j까지의 바구니에, k번째 숫자부터 다시 담습니다. i < k < j 인 조건으로 값이 주어집니다. [ i = 2, j = 5, k = 7 ] 이라고 가정을 합니다. 두 번째부터 일곱 번째까지의 바구니에, k 번째 바구니에 들어있던 숫자부터 차례대로 담습니다. j 번째 바구니의 숫자까지 담았다면, i 번째 바구니의 숫자부터 차례대로 담아줍니다. [i, j,.. 2023. 3. 18.
[백준JS] 10809. 알파벳 찾기 안녕하세요. 박기린 입니다. 백준 10809번 알파벳 찾기 문제를 풀어봅시다. 문제 링크 https://www.acmicpc.net/problem/10809 문제 해석 1. 모든 입력은 소문자 알파벳으로만 구성됩니다. 2. a부터 z까지 알파벳 리스트를 만듭니다. 3. 입력받은 string의 알파벳을 분해한 후, 등장하는 순서를 알파벳 리스트에 적어줍니다. 4. 입력받은 string에 포함되지 않은 알파벳은 -1을 적습니다. 5. 중복되는 알파벳이 있으면, 첫 번째 이후로 등장하는 중복 요소는 전부 무시합니다. 정답 코드 const fs = require("fs"); const input = fs.readFileSync("/dev/stdin").toString().trim().split(""); cons.. 2023. 3. 17.
[백준JS] 1152. 단어의 개수 (반례 설명 포함) 안녕하세요. 박기린 입니다. 백준 1152번 단어의 개수 문제를 풀어봅시다. 문제 링크 https://www.acmicpc.net/problem/1152 문제 해석 / 반례 영어 단어와 공백으로 이루어진 한 문장을 입력받으면, 그 문장에 단어가 몇 개가 있는 지를 출력해주면 되는 쉬운 문제입니다. 다만, 중간에 함정 반례를 피하지 못해 오답이 뜨는 경우가 있습니다. 그 반례는 바로 입력이 공백 (" ")으로만 주어지는 경우입니다. 정답 코드 const fs = require("fs"); const input = fs.readFileSync("/dev/stdin").toString().trim().split(" "); if (input.length === 1 && input[0] === "") { resu.. 2023. 3. 15.
[백준JS] 11654. 자바스크립트 아스키 코드 출력하기 (ASCII) 안녕하세요. 박기린 입니다. 백준 11654번 아스키 코드 문제를 풀어봅시다. 문제 링크 https://www.acmicpc.net/problem/11654 문제 해석 알파벳 소문자, 대문자, 숫자 0~9 중 하나가 주어집니다. 즉, 길이가 1인 String이 주어지는데, 이것을 아스키 코드로 변환하여 출력하면 됩니다. 문제 자체는 매우 간단한데, 아스키 코드를 변환하는 방법을 모를 수 있습니다. String의 내장함수 charCodeAt()을 사용하면 됩니다. 정답 코드 const fs = require("fs"); const input = fs.readFileSync("/dev/stdin").toString().trim(); console.log(input.charCodeAt()); 정답 코드 풀이 .. 2023. 3. 14.
[백준JS] 10811. 바구니 뒤집기 안녕하세요. 박기린 입니다. 백준 10811번 바구니 뒤집기 문제를 풀어봅시다. 문제 링크 https://www.acmicpc.net/problem/10811 문제 해석 N개의 바구니가 있습니다. 원활한 설명을 위해, N이 6이라고 가정을 합니다. 각 바구니에는 순서에 맞는 숫자가 담겨 있습니다. 입력으로는 [i, j]가 들어옵니다. i부터 j까지의 바구니에, 안에 들어 있던 숫자를 역순으로 다시 담습니다. [ i = 1, j = 3 ] 이라고 가정을 합니다. 첫 번째부터 세 번째까지의 바구니에, 안에 들어 있던 숫자를 역순으로 담아줍니다. [i, j]가 총 M번이 주어지는데, 모두 실행을 한 뒤에 결과값을 출력하는 게 10811 - 바구니 뒤집기 문제 입니다. 정답 코드 const fs = requir.. 2023. 3. 12.
[모동숲 섬꾸 - 야외] 도서관 작성자는 레퍼런스에 중독된 사람입니다. 의도적으로 따라했든 아니든, 어딘가에서 본 것을 참고해서 만들었을 가능성이 매우매우 높습니다. 안녕하세요. 박기린 입니다. 이번에는 섬 생활의 복지를 위해 필요한 '도서관'을 지어봤습니다. 독서하는 기린 천장이 없어, 아름다운 하늘과 책을 함께 즐길 수 있는 자연 친화적인 도서관 - '독서하는 기린' - 입니다. 독서하는 기린은 짙은 갈색 (Dark Brown)을 중심으로 조성이 되었습니다. 화려한 가구 대신에, 소박하면서도 차분한 느낌의 가구들을 배치했습니다. 독서하는 기린은 야외이다 보니 소리가 울리지 않습니다. 그래서 소파에 함께 앉아 주민들과 도란도란 이야기를 나눌 수 있습니다. (같이 앉아서 이야기를 나눌 여행객도 모집합니다..) 반대 구역에서는 조용히 공.. 2023. 3. 11.
[백준JS] 10810. 골 넣기 안녕하세요. 박기린 입니다. 백준 10810 - 골 넣기 문제를 풀어봅시다. 문제 링크 https://www.acmicpc.net/problem/10810 문제 해석 N개의 바구니가 있습니다. 원활한 설명을 위해, N이 6이라고 가정을 합니다. 각 바구니에는 0이 담겨 있습니다. 입력으로는 [i, j, k]가 들어옵니다. i부터 j까지의 바구니에, k 숫자를 담습니다. [ i = 1, j = 3, k = 3 ] 이라고 가정을 합니다. 첫 번째부터 세 번째까지의 바구니 안에 [k = 3]을 담아줍니다. [i, j, k]가 총 M번이 주어지는데, 모두 실행을 한 뒤에 결과값을 출력하는 게 10810 - 공 넣기 문제 입니다. 정답 코드 const fs = require("fs"); const [NnM, .... 2023. 3. 11.
[원신] 우산의 그늘 기믹 / 범균일여 / 수메르 비경 안녕하세요. 박기린 입니다. 이번엔 '우산의 그늘' 비경의 기믹에 대해 알아보겠습니다. 우산의 그늘 우산의 그늘 비경은 수메르의 마우티이마 숲 깊숙한 곳에 위치해 있습니다. 비경 제단이 위치한 곳에 가면, 풀 원소 탑이 여러 개가 있습니다. 여러 개의 풀원소 탑 중, 하나의 탑 아래에 불빛이 들어옵니다. 이 탑을 기준으로, 불빛 문양이 가리키는 방향에 위치한 풀 원소 탑을 밝히는 것이 핵심 기믹입니다. 헷갈리는 분들을 위해, 입구를 기준으로 어떤 순서로 포탑을 밝혀야 하는지 사진에 적어놓았습니다. 3번째 포탑의 경우, 풀 원소 벽에 가로막혀 있습니다. 비경 제단 옆에서 풀 씨앗을 소환한 후, 강공격으로 때려주면 해당 벽이 부서지면서, 숨어 있던 풀 원소 포탑이 나타납니다. 5개의 풀 원소 탑을 밝혀서 비.. 2023. 3. 9.
[React] 10. useRef(), ref에 대해 알아보기 안녕하세요. 박기린 입니다. 이번엔 리액트 훅 - useRef()에 대해 알아보겠습니다. ref ref는 DOM 요소에 직접 접근해서 작업을 하기 위해 존재합니다. ref가 필요한 이유 (ref vs state) 에 state가 연결되어 있으면, 무언가를 입력할 때마다 state가 바뀝니다. 리액트의 state는 값이 변하면, 그때마다 매번 컴포넌트들이 재렌더링됩니다. 만약 블로그에 긴 글을 쓰는 경우, 수 천자의 분량을 써내려가는 동안 매번 컴포넌트가 재렌더링된다면 굉장히 비효율적일 것입니다. ref는 state와 다르게, HTML DOM에 접근해서 DOM 안에 적힌 값을 알아갑니다. 의 값이 얼마나 변하든 상관없이, ref를 접근한 그 시점을 기준으로 안에 적힌 값만을 취합니다. 블로그에 계속 글을 .. 2023. 3. 6.