전체 글 52

solved.ac 활동 1년 결산

스트릭 그래프에 처음으로 흔적을 남기고 1년이 되었습니다. 제대로 자리잡은 건 9월부터이긴 하지만요.레이팅10월 목표: 골드연말 목표: 플래티넘티어는 어느 정도 수렴해서 더 올리기는 힘들 것 같고 다이아 난이도 문제도 언젠가 하나쯤은 풀어보고 싶은데 지금 상태로는 어떻게 될지 모르겠습니다.한 가지 재미있는 사실은 실버 문제를 하나도 못 풀어도 실버에 도달할 수 있고, 골드 문제를 하나도 못 풀어도 골드에 도달할 수 있고, 플래티넘 문제를 하나도 못 풀어도 플래티넘에는 도달할 수 있다는 점입니다.스트릭2024년 4월 16일이라 당연히 2023년 4월 17일 스트릭부터 보일 줄 알았는데 2월 29일이 있어서 그런지 하나가 잘렸습니다. 날짜별로 해결한 최고 난이도 그래프로 보면 아래와 같습니다. 서포터 전용 ..

카테고리 없음 2024.04.17

[JavaScript] forEach의 순회를 멈추는 방법

forEach forEach 메서드는 Array, Set, Map 자료형이 가지는 요소 순회 메서드입니다. 모든 요소에 대하여 주어진 콜백 함수를 호출하게 되며, forEach 자체적으로 순회를 종료시킬 수 있는 방법은 없습니다. 그럼에도 불구하고 순회를 종료하고 싶다면 대안은 있습니다. 1. 말 그대로 forEach 순회 자체를 종료시키는 방법입니다. 특정 조건을 만족했을 때, 에러를 throw하도록 콜백 함수 설계 try - catch 문 사용 2. 순회 자체를 종료할 수는 없으나 추가 작업의 실행을 제한하는 방법입니다. 특정 조건을 만족했을 때, 작업을 수행하지 않고 return하도록 콜백 함수 설계 1. 멈출 수 없다면 부숴버리겠어(try - catch) 프로그램 동작 중 오류를 throw하면 프..

[Github] 2단계 인증(2FA) 등록

Github 2단계 인증 의무화 Raising the bar for software security: GitHub 2FA begins March 13 On March 13, we will officially begin rolling out our initiative to require all developers who contribute code on GitHub.com to enable one or more forms of two-factor authentication (2FA) by the end of 2023. Read on to learn about what the process entails github.blog 작년에 채택된 Github 정책에 의하여 점진적으로 모든 사용자에게 2단계 인증을 ..

카테고리 없음 2024.03.11

[티스토리] 일부 Latex 수식에 MathJax 변환이 적용되지 않는 문제

문제 MathJax를 사용하여 Latex 수식의 변환을 시도하였으나 일부 수식이 제대로 변환되지 않습니다. 원인 변환되지 않는 수식을 개발자 도구로 검사한 결과, 한 줄로 입력한 내용이 서로 다른 span 요소 또는 텍스트 노드로 사분오열되어 입력되어 있는 것을 발견하였습니다. 이러한 요소의 분리는 스타일이 적용되는 경우에 일어납니다. 텍스트 에디터로부터 비롯된 문제로 볼 수 있습니다. 해결 글쓰기 옵션 중 가장 우측에서 HTML 모드로 접근합니다. 수식의 중간에 중첩된 태그가 사용되지 않도록 제거합니다. 또는, 수식 전체를 다시 입력합니다. 제 경우, 수식에 인용문을 지정했다가 해제하는 과정에서 해당 부분에 스타일이 추가되었고, 작성된 식의 일부분을 복사하여 활용함에 따라 스타일을 유지한 채 새로운 태..

[CSS] 페이지 인쇄 시 배경색이 보이지 않는 문제

인쇄(ctrl + p) HTML 페이지의 background-color 속성이 인쇄 미리보기에 적용되지 않는 현상을 확인하였습니다. 아래는 전체 문서를 검게 칠하여 극단적으로 표현한 예시입니다. 인쇄 미리보기 시 배경색이 전부 사라져 모든 글씨가 보입니다. print-color-adjust 미디어 쿼리를 이용하여 print에 해당할 때, print-color-adjust 속성을 exact로 지정합니다. @media print { body { print-color-adjust: exact; -webkit-print-color-adjust: exact; } } print-color-adjust는 economy와 exact 둘 중 하나를 지정해야 합니다. 기본값은 economy이며, user agent에 의해..

[JavaScript] switch문의 fall-through

case마다 반드시 break를 사용할 것 if - else if - else문 대신 switch - case문을 사용해 보려다가 당했습니다. break를 사용하지 않았기 때문입니다. switch - case 각각의 문자열이 아래와 같이 대응된다고 해봅시다. U: up → y 좌표를 1 증가시킴 D: down → y 좌표를 1 감소시킴 L: left → x 좌표를 1 감소시킴 R: right → x 좌표를 1 증가시킴 간단하게 코드로 나타내 보면 아래와 같습니다. const string = "UDLR"; let x = 0; let y = 0; for (let chr of string){ switch (chr) { case 'U': y++; case 'D': y--; case 'L': x--; case '..

함정 시리즈 2024.01.29

[html/css/js] 노이즈 효과 만들기

우연한 계기로 canvas를 활용하여 그리드에 흰색 혹은 검은색을 칠하는 간단한 작업을 수행하였는데, 얼마 전 신기하게 봤던 노이즈 효과를 도전해 봐도 좋을 것 같습니다. 당장 코드가 급하신 분들은 이 글이 아니라 이쪽의 출처로 html5 canvas noise generation ... codepen.io 로직 생각한 로직은 다음과 같습니다. canvas 생성 렌더링 함수 정의 width * height 크기의 배열 생성 및 값 할당 배열의 값에 따라 픽셀 단위로 칠하기(fillRect 활용) 렌더링 함수 반복 호출 옵션은 다음과 같습니다. window 크기 변경 시 canvas 크기도 조절되는 로직(resize) 구현 주요 로직 1. canvas 생성 html에 canvas 태그 추가 js로 canv..

#구현 2024.01.23

[프로그래머스] 주사위 굴리기 리팩토링 - 누적합 적용해 보기

문제: https://school.programmers.co.kr/learn/courses/30/lessons/258709 풀이(이진 탐색): [프로그래머스] 주사위 굴리기 - 2024 카카오 겨울 인턴십 카카오 공식 문제해설은 이진 탐색을 사용하는 것보다 시간복잡도 측면에서 더 효율적인 방법이 있음을 시사하였고, 답을 구하는 방법으로는 누적합, 투포인터, 이진 탐색 등을 언급하였습니다. 그래서 저는 이진 탐색을 활용했던 부분을 누적합으로 대체하여 시간복잡도를 개선해 보고자 합니다. 리팩토링 시뮬레이션 결과 우선 시뮬레이션 결과를 저장하는 방식을 바꿔 봅시다. 누적합을 활용하려면 우선 결과를 구간으로 나타내야 할 필요가 있습니다. 시뮬레이션 결과의 범위 주사위 N개를 던졌을 때 얻을 수 있는 최대 숫자는..

카테고리 없음 2024.01.11

[프로그래머스] 주사위 굴리기 - 2024 카카오 겨울 인턴십

https://school.programmers.co.kr/learn/courses/30/lessons/258709 이번에는 주사위 굴리기 문제입니다. 주사위를 던져 나올 수 있는 경우의 수를 전부 고려해야 하는 완전탐색 문제입니다. 주사위 굴리기 2 이상 10 이하인 짝수 N개의 주사위를 절반씩 나누어 가져 주사위를 던집니다. 각 주사위의 눈은 1 이상 100 이하입니다. 승부는 주사위를 던져 나온 눈의 합계의 비교를 통해 이루어집니다. A는 승률이 최대가 되는 주사위 조합을 알고 싶습니다. 단계 요약 N개의 주사위 중 N/2개를 선택하는 모든 조합을 구합니다. 단계 1에서 만들어진 조합에 대하여 다음의 과정을 반복합니다. 조합별로 주사위를 굴렸을 때 얻을 수 있는 결과를 저장합니다. A로 시뮬레이션한..

카테고리 없음 2024.01.11

[프로그래머스] 산 모양 타일링 - 2024 카카오 겨울 인턴십

https://school.programmers.co.kr/learn/courses/30/lessons/258705# 2024 KAKAO WINTER INTERNSHIP 문제였던 다이나믹 프로그래밍 문제입니다. 실전에서는 해결하지 못하였으나 프로그래머스에 올라와 있길래 다시 도전하였습니다. 산 모양 타일링 정삼각형을 2n + 1개 이어 붙여 밑변의 길이가 n + 1, 윗변의 길이가 n인 사다리꼴을 만듭니다. 윗변과 변을 공유하는 n개의 삼각형 각각은 머리(top)가 붙어 있을 수도 있고, 없을 수도 있습니다. 머리가 있는지 없는지 여부는 tops 배열을 통해 주어집니다. 산 없는 산 모양 타일링 우선 tops의 값이 전부 0이라고 생각하고, 2n + 1개의 삼각형으로 이루어진 사다리꼴을 채우는 경우의 수..

카테고리 없음 2024.01.08