반응형

전체 글 139

Vanilla JS Toy 프로젝트 - 1. Form Validator (html편)

주변 프로그래머들만 본다고 하더라도, Jquery 없이 자바스크립트를 전혀 활용하지 못하는 경우를 어렵지 않게 찾아볼 수 있다. 자바스크립트 그 본질을 깨닫지 못한 상태에서 편의성만을 위해 Jquery를 사용해 왔다는건 분명 문제가 있다. 본질을 깨닫지 못한다면, Jquery에서 제공하는 편의 기능들이 어떠한 의미에서 어떻게 구현되었는지 알 수 없게 될것이고, 이는 곧 개발하는데에 있어 큰 난관으로 다가올 수 있다. (디버깅시 Jquery 내부 코드에서 문제가 생긴다면 이유를 파악하지 못할것이고, 결국에는 해결하지 못할 것이다.) 바닐라 자바스크립트 공부를 통해 그 본질을 먼저 깨닫고, 라이브러리 혹은 프레임워크를 사용해야 하는 이유가 이런 점에 있다.> 출처: https://lipcoder.tistor..

VanillaJS 2021.12.28

AtCoder Beginner Contest 207-A부터 C까지 업솔빙

AtCoder Beginner Contest 207 A부터 C까지 업솔빙 C번 문제 이거는 모르면 그냥 당하는 문제라고 생각했다. 문제 제목도 많은 조건 분기라서 이렇게 많은 조건을 분기해야 하나? 라는 생각을 하면서 문제를 풀었는데 결국은 못풀고 보니까 애초에 이런 문제를 푸는 방법이 있었다. 진짜 PS는 고인물 판인거 같다. 두 구간이 교차하는 조건 쉽게 구하기 닫힌구간과 열린구간에 대한 처리 방법 문제 옆에 붙어있는 난이도는 Atcoder Problems 에서 추정한 것으로 작성했다는 것을 미리 알린다. A - Repression (*6) 접기/펼치기 문제 설명 책상에 카드 3개가 있고 각 카드에는 양수가 적혀져 있다. 각 카드에 적혀있는 정수는 $A, B, C$이다. 두 카드를 선택하고 두 카드를..

AtCoder Beginner Contest 209 - A부터 D까지 업솔빙

AtCoder Beginner Contest 209 A부터 D까지 업솔빙 충격적이라고 느낀 문제 set, C번하고 D번을 모두 못풀어서 짜증이 났던 문제다 도대체 나는 천장을 얼마나 두들겨야 그 고지를 넘어갈 수 있을까? 심지어 C번문제는 거의 다 접근했는데 한가지 생각을 못해서 못풀었고, D번 문제는 접근방법 조차 생각을 못해서 배울 점이 개인적으로 많았다고 느끼는 문제다. bipartite graph(이분 그래프)의 정의 및 활용 문제 옆에 붙어있는 난이도는 Atcoder Problems 에서 추정한 것으로 작성했다는 것을 미리 알린다. A - Counting (*5) 접기/펼치기 문제 설명 $A$보다 작지않고 $B$보다 크지 않은 정수는 몇개일까? 문제 해설 일단 $A$부터 $B$까지 정수의 개수를..

모던 자바스크립트 Deep Dive 리뷰

1. 이 책을 고른 이유 대학교에서 소프트웨어학과에 재학중인 나는 과 특성상 IT관련 지식을 가진 사람이 많고, 코딩으로 업을 삼으려고 하는 동기들이 많다. 내 동기들만 봐도 수많은 사람들이 있다. 아직 무엇을 해야할지 몰라 학과 수업이라도 열심히 들으려고 하는 사람. 무언가를 하고 싶은데 수많은 컴퓨터 관련분야에서 어떤부분을 공부할지 계속 찾고 있는 사람. 자신이 원하는 분야를 정했지만 무엇을 해야하는지 모르는사람. 자신이 원하는 분야를 정했고 무엇을 해야하는지 알아서 공부를 계속 하는 사람. 이미 특정분야로 돈을 벌고 있는 사람. 5번 부류의 사람들한테 조언도 듣고 질문도 하면서 학생이 간단하게 부업으로 돈을 벌 수 있는 방법으로 웹개발 외주를 많이들 추천했다. 실제로 이미 인턴이나 취업을 한 내 동..

IT서적 2021.12.25

Educational Codeforces Round 112-C. Coin Rows

문제 설명 앨리스와 밥은 $2 \times m$ 크기의 격자판에서 게임을 하고 있다. $i$번째 행과 $j$번째 열에 위치한 격자는 $a_{i, j}$개 코인이 위치해 있다. 처음에 앨리스와 밥은 격자 $(1, 1)$ 에 위치해 있다. 이들은 격자 $(2, m)$ 을 향해서 다음 동작을 수행한다. 가능한 움직임은 다음과 같다. 오른쪽으로 이동 $(x, y) -> (x, y + 1)$ 아래쪽으로 이동 $(x, y) -> (x + 1, y)$ 첫번째로 앨리스가 $(2, m)$ 을 향해서 움직인다. 앨리스는 방문한 모든 격자의 코인을 다 쓸어담는다. 단 처음과 끝도 포함. 두번째로 밥이 $(2, m)$ 을 향해서 움직인다. 이때 밥은 앨리스가 방문하지 않은 모든 격자의 코인을 다 쓸어 담는다. 즉 앨리스가 이..

Educational Codeforces Round 112-B. Two Tables

문제 설명 축과 평행하고 너비가 $W$이고, 높이가 $H$인 직사각형 방이 있다. 따라서 왼쪽 아래에 꼭짓점은 $(0, 0$ 이고, 오른쪽 위에 꼭짓점은 $(W, H)$ 이다. 이 방안에는 직사각형 탁자가 놓여있다. 탁자의 옆면은 벽과 평행하며, 왼쪽 아래 꼭짓점은 $(x_1, y_1)$, 오른쪽 위에 꼭짓점은 $(x_2, y_2)$ 이다. 우리는 이 방안에 너비가 $w$이고, 높이가 $h$인 또 다른 탁자를 기존의 탁자와 평행하고, 벽과 평행하게 놓고 싶다. 여기서 주의해야할 점은 두 테이블이 겹치게 놓으면 안된다는 것이다. 어떤 탁자라도 움직일 수는 없지만 첫번째 탁자를 이동시킬 수는 있다. 두번째 탁자가 주어진 방에 놓일 수 있게 하기 위해서 첫번째 탁자가 움직여야할 최소 거리는 무엇인가? Inpu..

Educational Codeforces Round 112-A. PizzaForces

문제 설명 Pizzaforces는 페니가 가장 좋아하는 피자가게이다. 이 가게에는 3종류의 피자를 만들고 판매한다. S 사이즈는 6조각, M사이즈는 8조각, L사이즈는 10조각으로 이루어져 있다. 각각 피자를 만드는데 15분, 20분, 25분이 걸린다. 페니의 생일은 바로 오늘이고 친구 $n$명이 오기로 되어있다. 그래서 페나가 가장 좋아하는 피자집인 Pizzaforces에서 피자를 주문하려 한다. 페니는 모든 친구들이 최소 피자 1조각을 먹게 주문하고 싶다. 총 주문 시간은 모든 피자를 요리하는데 필요한 총 시간이다. 우리는 최소 $n$조각의 피자를 만들기 위해서 필요한 최소 시간을 구해야 한다. Input 첫번째 줄에는 테스트 케이스를 의미하는 정수 $t (1 \le t \le 10^4)$ 이 주어진..

AtCoder Beginner Contest 208 A부터 D까지 업솔빙

AtCoder Beginner Contest 208 A부터 D까지 업솔빙 계속 이렇게 대회가 나왔으면 좋겠다. D번문제가 생각보다 내가 알고있는 알고리즘을 그대로 사용해서 풀 수 있었다. 이제는 "어딘가 들어본 알고리즘"이 아닌 "언제든지 꺼내 쓸 수 있는 알고리즘"으로 만들어야 할 시기이다. 이번 대회를 참여하면서 배운 것은 Floyd-Warshall(플로이드-와샬) 알고리즘의 구현과 쓰임새 문제 옆에 붙어있는 난이도는 Atcoder Problems 에서 추정한 것으로 작성했다는 것을 미리 알린다. A - Rolling Dice (*28) 접기/펼치기 문제 설명 $1, 2, ..., 6$ 이 적혀있는 주사위를 $A$번 던질때 주사위 눈금수의 합이 $B$가 나올 수 있을까? 제약 $1 \le A \le ..

Codeforces Round #736 (Div. 2)-C. Web of Lies

문제 설명 $n$명의 귀족이 있다. $1$부터 $n$까지 번호가 붙여져 있는 귀족 $i$는 $i$만큼 힘을 가지고 있다. 또한 $m$개의 친구관계를 가지고 있다. 귀족 $a$와 $b$사이에 있는 친밀도는 항상 서로 작용한다. 만약 한 귀족이 다음 두 조건을 모두 만족하면 그 귀족을 우리는 "취약하다" 고 한다. 귀족은 최소 1명 이상의 친구를 가져야한다. 모든 귀족의 친구는 그 귀족보다 높은 힘을 가져야한다. 우리는 다음 세종류의 질의에 따라 진행한다. 귀족 $u$와 $v$사이에 친구관계를 맺는다. 귀족 $u$와 $v$사이에 있는 친구관계를 지운다. 다음과정에 따라 답을 도출한다. The Process: 모든 취약한 귀족을 동시에 죽여버린다. 그리고 그 귀족과 관계되어 있는 친구관계 또한 끝난다. 그후 ..

Codeforces Round #736 (Div. 2)-B. Gregor and the Pawn Game

문제 설명 $n \times n$ 크기의 체스판이 주어진다. 왼쪽부터 $i$번째 행과 $j$번째 열을 $(i, j)$ 라고 표기한다. 현재 조지는 $n$번째 행에 폰을 몇개 놓는다. 적 폰은 $1$번째 행에 위치해 있다. 각 턴마다 조지는 조지의 폰중 하나를 움직인다. 만약 맞은편에 폰이 존재하지 않는다면 폰은 위로 한칸 움직일 수 있다. $(i, j)$ 에서 $(i - 1, j)$ 추가적으로 위쪽 대각선에 상대 폰이 존재한다면 폰은 대각선으로 한칸 위로 움직일 수 있다. $(i, j)$ 에서 $(i - 1, j - 1) or (i - 1, j + 1)$ 그리고 그 위치에 있는 폰은 제거된다. 조지는 $1$번째 행에 자신의 폰이 최대 몇개나 위치할 수 있는지 알고싶다. 오직 조지의 턴만 가지고 있으며, ..

반응형