-
백준 1260번 : DFS와 BFS(Python, 파이썬)카테고리 없음 2021. 1. 7. 14:20
풀어본 문제를 복습하고 있다. '단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고'라는 조건을 주의해야 한다. 인접 리스트의 요소에 접근했을 때 BFS의 경우 인접 리스트 요소를 오름차 순, DFS의 경우 인접 리스트 요소를 내림차 순으로 정렬해주어야 한다. 예를 들면 인접 리스트의 특정 요소 adj[i] = [2,5,1]이 있다고 가정하자. 오름차 순으로 정렬 시 adj[i] = [1,2,5], 내림차 순으로 정렬 시 [5,2,1]이다. 원소들은 정점이므로 queue와 stack에 담아주면 queue = [... 1, 2, 5], stack = [... 5, 2, 1]로 쌓이게 된다. 이렇게 되면 탐색을 진행 시 queue와 stack 둘 다에서 정점 번호가 작은 것..
-
백준 4195번 : 친구 네트워크 - 파이썬, Python 풀이카테고리 없음 2020. 8. 31. 01:33
들어가며 오랜만에 백준 문제를 올린다. 이번 문제는 유니온 파인드(Union Find), 디스조인트 셋(Disjoint Set)이라고 불리는 알고리즘의 대표적인 문제인 친구 네트워크라는 문제이다. 현재 solved.ac 기준 골드 2에 랭크돼있다. 골드 2인 이유는 유니온 파인드를 응용할 아이디어를 생각해내야 하고 문자열 처리를 해야 하기 때문이다. 아이디어만 생각해낸다면 파이썬으론 문자열 처리가 무척 쉬우므로 알고리즘 적용 시 무리 없이 풀린다. 풀이 우리는 입력된 두 사람의 친구 네트워크를 구성했을 때(유니온 파인드를 통해 트리를 구성했을 때), 친구의 수(트리를 구성하는 노드의 수)를 구해주어야 한다. 그러므로 단순히 노드끼리 합쳐 줄 것이 아니라, 동시에 자손 노드 자기 자신과 거느리고 있는 노드..
-
attribute와 property의 차이(HTML: The difference between attribute and property 번역)카테고리 없음 2020. 8. 16. 18:59
HTML: The difference between attribute and property 이 글은 2011년에 JQuery Howto에 게시된 HTML: The difference between attribute and property(HTML: attribute와 property의 차이)라는 글을 번역한 글입니다. 이번 짧은 포스팅에서 나는 HTML에서의 attributes와 properties의 차이를 설명하고자 합니다. JQuery 1.6에서 도입된 .prop() 함수에 의해 그 차이에 대한 많은 의문이 생겼습니다. 그래서 저는 이 포스팅이 의문들을 해결하는 데 도움이 되길 바랍니다. attribute란 뭘까? attribute는 HTML element에 대한 추가적인 정보를 제공하고 name=..
-
프로세스와 스레드에 대해서(보완 예정)카테고리 없음 2020. 8. 3. 02:28
프로세스와 스레드 (1) 프로세스 프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 프로세스는 운영체제로부터 자원을 할당받는 작업의 단위 즉, 동적인 개념으로는 실행된 프로그램을 의미한다. 프로세스는 실행될 때 운영체제로부터 프로세서, 필요한 주소 공간, 메모리 등 자원을 할당받음. CPU 시간, 운영되기 위해 필요한 주소공간, Code, Data, Stack, Heap의 구조로 되어 있는 독립된 메모리 영역 프로세스는 각각의 독립된 메모리 영역을 할당받는다. 기본적으로 프로세스 당 최소 1개의 스레드(메인 스레드)를 가지고 있다. 각 프로세스는 별도의 주소 공간에서 실행, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근..
-
babel-plugin-root-import 로 root import 하기카테고리 없음 2020. 7. 27. 01:56
바벨(Babel)이란? 자바스크립트는 파편화가 심한 언어이다. 지속적인 업데이트로 예전보다 발전된 최신 문법들이 생겼고 정말 좋은 문법들이 많다. 하지만 브라우저, OS, 서버별로 쓰는 문법, 안 쓰는 문법들이 있다는 것이 문제이다. 대표적으로 브라우저들이 그 편차가 심하다. 크롬, 사파리, 파이어폭스와 같은 브라우저들은 ES6 대부분의 사양을 구현하고 있으나, 인터넷 익스플로어(IE)의 경우 ES6의 많은 사양을 구현하고 있지 못하다. 그렇다면 어떻게 해야할까? ES6를 지원하지 않는 IE 브라우저를 그냥 배제해버릴까? 아니면 IE 브라우저를 커버하기 위해 ES6 문법으로 작성한 코드와 동일하게 작동하는 IE브라우저용 ES5 코드를 따로 작성해둬야 할까? 한쪽은 무책임하고, 다른 한쪽은 비효율적이다. ..
-
angelhack Seoul 2020 Online hackathon 참여 후기카테고리 없음 2020. 7. 20. 03:18
angelhack이란? 실리콘밸리 유명인사 및 출신들이 만든 세계 최대 해커톤 대회라고 한다. 나는 그 중 Seoul에서 열리는 대회를 참여했다. 기간은 행사와 심사를 포함하여 7월 13일부터 7월 22일까지 진행된다. 이번 주제는 "위기 속의 창의성"이라는 슬로건 하에 COVID - 19를 극복하기 위한 기술 솔루션을 만드는 것이었다. 유엔이 제안하는 지속 가능한 개발목표 17가지로 설계되었다고 하였고 관련 자료도 슬랙에 공유됐는데 크게 참고했던 것 같지는 않다. 봤으면 더 잘했을지도. 상금 규모는 약 천 만원 규모였다. 우아한형제, 커먼컴퓨터, 패스트캠퍼스 등 많은 기업이 후원하고 있다. 참여하면서 이번 해커톤은 지난번 IBM Call For Code 다음으로 두 번 째 해커톤이었다. 그때는 ..
-
백준 1463번 : 1로 만들기(Python, 파이썬)카테고리 없음 2019. 3. 13. 19:21
https://www.acmicpc.net/problem/1463 언뜻 보면 단순한 문제로 보인다. 그냥 1, 2, 3번을 구현해서 적용하면 되는 것처럼 보인다. 그러나 그렇지 않다. 연산을 사용하는 횟수의 최솟값을 출력하라는 뜻은 연산을 최고의 효율로 진행하라는 뜻. 1로 만들기위해 쓸데없는 연산을 진행해선 안된다. 경우의 수를 담을 리스트를 만들었다. 그다음 정수 X에 대한 세 가지 연산에 따른 경우의 수를 리스트에 저장했다. 그리고 경우의 수에 따른 값들에 다시 세 가지 연산을 적용하면 경우의 수 아홉 가지가 나올 것이다. 이를 리스트에 저장한다. 그리고 이를 반복하다가 1로 만드는 순간 연산의 최솟값을 출력하면 된다. 123456789101112131415161718192021222324X = i..
-
백준 1978번 : 소수 찾기(Python, 파이썬)카테고리 없음 2019. 3. 7. 19:52
https://www.acmicpc.net/problem/1978 주어진 수에서 소수를 찾는 문제이다. 소수란 1과 자기 자신으로 만 나누어지는 수이다. 1은 제외되고 2, 3, 5 , 7, 11 .. 그 외에 수로 나누어지는 수는 소수가 아니다. 이에 착안하여 수가 주어졌을 때 1과 자기 자신을 제외한 다른 수로 나누었을 때 값이 정수라면(나누어졌다는 뜻이니까..) 제외하는 방식으로 코드를 작성하였다. 12345678910111213141516num = input()count = int(num)nums = list(map(int,input().split(' ')))if len(nums) == int(num): for i in nums: if i != 1: for j in range(2,i): if (i..