본문 바로가기

전체 글

(359)
위상정렬 대표적인 2문제 비교 처음문제를 풀당시 기존의 위상정렬에서 정점들의 선행순서를 위반하지만 않는다면 어떤 순서로 정렬해도 상관이 없었지만 14567, 선수과목 (Prerequisite) 문제에서는 각과목의 누적학기를 표시해 주어야 했다. 이걸 어떻게 누적시키지? 생각하며 재귀를 이용해야 하나? 라는 생각도 잠시 했었다. 하지만 심플하게 반복문을 돌면서 기존에 deque에 저장되어있던 학기정보인 cnt를 popleft하고 append하는 과정에서 자연스럽게 누적되는 학기수를 다룰수 있었다. 두 코드의 비교! 1. 전형적인 (위상)정렬 코드에서는 그래프를 표현하기위해 인접행렬을 사용하였지만 선수과목 문제에서는 사전과 리스트를 사용해 그래프를 표현하였다! 2. (위상)정렬 코드에서는 진입차수가 0인 정점을 저장하기 위해 vacant..
collections.defaultdict와 일반적인 파이썬 내장 자료구조인 사전(Dictionary)을 사용하는 예. 두번째글 아래글을 읽고 알게된 점. 1. ex1 = {'a':1, 'b':2} print(ex1) print(ex1['b']) print(ex1['c']) from collections import defaultdict def default_factory(): return 'null' ex1 = defaultdict(default_factory, a=1, b=2,d=44)#defaultdict를 호출하기 위해 첫번째 인자로 만약 #해당 키가 없을 시에 어떠한 지정된 값을 반환하는지를 정하는 함수를 두고 나머지 인자에는 맵의 키값과 value값을 전달하고 있음 print(ex1) print(ex1['d']) print(ex1['c']) 2. 집합(set)이든 맵,딕셔너리(dictionary)이든 똑같이 형식은 { ..
collections.defaultdict와 일반적인 파이썬 내장 자료구조인 사전(Dictionary)을 사용하는 예 def countLetters(word): counter = {} for letter in word: if letter not in counter: counter[letter] = 0 counter[letter] += 1 return counter print(countLetters('hannibal')) 파이썬의 내장 자료구조인 사전(dictionary)를 사용하다 보면 어떤 키(key)에 대한 값(value)이 없는 경우에 대한 처리를 해야하는 경우가 자주 발생합니다. 이번 포스팅에서는 이러한 경우 일반적으로 어떻게 처리를 하는지 살펴보고, 관련해서 파이썬에서 제공하는 몇가지 방법을 알아보도록 하겠습니다. 일반적인 사전 기본값 처리 아래 코드는 주어진 단어에 들어있는 각 알파벳 글자의 수를 세어서 사전..
DOM이란? 참고: https://www.youtube.com/watch?v=mFawNZz_Uu0 https://poiemaweb.com/js-browser https://www.youtube.com/watch?v=aTGhKjoZeao DOM=Document Object Model (문서 객체 모델) 웹문서를 제어(parser)하기 위해 DOM을 만들었다. 제어하기위해 문서를 객체화하였다. 문서를 객체화화한 모델이 DOM(Document Object Model)이다. (DOM에 대한 나의 정리: 웹문서를 제어(parser)하기위해 문서를 객체화한 모델이 DOM(Document Object Model)이다. 여기서 제어의 편리함을 도모하기 위해 브라우저는 API를 제공하게 되고 이것으로 DOM Tree를 제어한다) D..
css 선택자(selector) 개념 정리 출처: https://velog.io/@rimu/css-css-%EC%84%A0%ED%83%9D%EC%9E%90selector-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC [css] css 선택자(selector) 개념 정리 CSS(Cascading Style Sheets)는 HTML 요소(Element)의 스타일을 주는 역할을 하는데요, 그러려면 스타일을 적용하고자하는 HTML 요소를 특정할 필요가 있기 때문에 선택자(selector)에 대해 잘 알아둬야 합니다. velog.io CSS selector에 대해 CSS(Cascading Style Sheets)는 HTML 요소(Element)의 스타일을 주는 역할을 하는데요, 그러려면 스타일을 적용하고자하는 HTML 요소를 특정할 ..
DAO, DTO란? 원본 출처 : http://everyit.tistory.com/4 =========================================================================================== 아래글 읽기 전에 초간단하게 설명하면 이렇다.(출처:Ocam 8월 31일 영상) DTO란? Data Transfer Object의 의미로 데이터베이스의 특정 테이블의 구조와 같다. DTO는 서버안에서 각 계층간에 데이터를 주고받기(Transfer)위해 만들어 졌다. 예를들어 고객의 DTO라고 하면 Customer테이블의 속성으로 id, pwd, name이 있고 그 DTO 클래스는 아래와 같이 구성된다. DAO란? 아래 그림과 같이 DB에 연결하기 위한 정보(url, id, pw..
School algo02 전수조사 재귀를 이용한 전수조사문제는 거시적 관점에서는 대부분 재귀트리를 내리락 오르락 하면서 답을 찾아나간다. 다만 세부적으로보면 올라가면서 답을 찾는 경우가 있고 완전히 내려와서 찾는 경우가 있다(물론 내려가면서 찾을수도 있지만 이 경우는 내가 경험해 본 바에 의하면 올라가면서 찾는 경우로 바꿀수 있고 그렇게 바꾸는게 더 코드가 좋다). 이는 어디까지나 세부적으로 보았을때 그렇다는 말이지 거시적으로는 대부분 내리락 오르락 하면서 답을 낸다. import java.util.Scanner; public class Main { // int[블록을 놓는 모양][모양에 따른 블록들의 상대좌표][상대 좌표] // 가장 왼쪽 위 블록을 기준으로 상대좌표를 산정한다. // (y좌표,x좌표) private static int..