자료구조 & 알고리즘/백준(Baekjoon)

[백준]10026(파이썬) - 적록색약

https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 이 문제는 단지번호 붙이기와 비슷한 문제이다. DFS를 사용해서 풀었고 색맹일 경우와 색맹이 아닐 경우를 나눠서 풀었다. 색맹이 아닐경우는 문제가 없지만 색맹일 경우 R과 G는 구별하지 못하므로 같은 색으로 인지하고 B와 나머지를 구별해주면 되는 문제였는데, DFS함수안에 if문으로 처리를 해줄까 하다가 그냥 R이나오면 G로 바꾸고(G가 나오면 R로 바꿔도 문제없다.) G와 B로 만이루어진..

2021.07.22 게시됨

자료구조 & 알고리즘/프로그래머스(programmers)

programmers - 순위

https://programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 이 문제는 그래프 문제로 주어진 results 리스트를 활용해서 그래프를 먼저 그리고 시작했다. 이긴 사람 집단과 진 사람 집단을 만들어서 먼저 그래프를 구현해줬다. 이 문제의 포인트는 b가 a를 이겼을 때, c가 b를 이겼으면 c는 a보다 높은 순위라는 점이다. 이 문제 예시에서도 2번이 5번을 이겼고, 2번이 1,3,4한테 졌으면 5번은 당연히 1,3,4보다는 아래 순위를 기록하게된다. winner와 loser의 딕셔너리를 만들어주고, for문을 통해서 입력값 re..

2021.07.21 게시됨

Language/Javascript

[javascript 자바스크립트] Promise 프로미스 란?

이번 시간에는 '프로미스 객체'에 대해서 알아보려고 한다. 프로미스 객체란 무엇일까? 자바스크립트와 노드에서는 주로 비동기를 접한다. 프로미스는 자바스크립트 비동기 처리에 사용되는 객체이다. 여기서 자바스크립트의 비동기 처리란 ‘특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성’을 의미한다 비동기 처리 시 이벤트 리스너를 이용할 때 콜백 함수를 자주 사용한다. ES2015부터는 자바스크립트와 노드의 API들이 콜백 대신 프로미스(Promise) 기반으로 재구성되어 우리가 흔히 말하는 '콜백 지옥' 현상을 극복했다고 한다. 프로미스를 쉽게 설명하자면 실행은 바로 하되, 결괏값은 나중에 받는 객체라고 할 수 있다. 프로미스를 사용하기 위해서는 먼저 프로미스 객체를..

2021.07.21 게시됨

자료구조 & 알고리즘/백준(Baekjoon)

[백준]1068(파이썬) - 트리

https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 나는 알고리즘문제를 풀 때 트리관련 문제가 나오면 트리 구조를 확실하게 이해하고, 대부분을 리스트 형태로 구현한다. 이번 문제에서 핵심은 입력받은 del_node(삭제 노드)의 자식 노드들을 모두 없애고 리프노드를 구할 때, del_node까지만 고려해주면 되는 문제이다. 굳이 다 만들고, del_node의 자식들을 모두 지워주는 것은 비효율적이다. DFS로 구현하였고, 입력받은 graph값..

2021.07.20 게시됨