Algorithm

Algorithm/Baekjoon

백준 11723번 - 집합(Node.js)

https://www.acmicpc.net/problem/11723 알고리즘 분류 : 구현 비트마스킹 문제를 다 풀고 나니 Node.js 언어는 제출을 지원을 안하는걸 알았다.그래서 일단 블로그에 내가 푼 코드를 올리려고한다.(맞았는지 틀렸는지는 모르겠지만 ... testCase의 출력대로 제대로 나오는것은 확인했다...) 이 문제는 비트마스킹을 모른다면 배열을 이용해서 풀 수도 있고, 알고있다면 비트마스킹을 활용해서 풀 수 있는 문제처럼 보인다.나는 이 문제를 풀기위해 비트마스킹을 공부했.. 우선, 비트마스킹을 이용해서 문제를 풀었기 때문에 비트마스킹에 대해 전혀 모른다면 아래 글을 한번 읽고 오는게 조금이나마 도움이 될것같다.https://hoonni3002.tistory.com/175 비트 마스킹..

Algorithm/Notion

비트 마스킹

비트마스킹(BitMasking)정수의 이진 표현을 이용해 특정 비트(bit)를 조작하거나 검사하는 기술0과 1로 구성된 이진수 표현에서 원하는 자리의 비트를 다루는 방법플래그 관리, 퍼미션 설정, 효율적인 상태 추적 등에 사용된다. *플래그 관리 : 여러 개의 상태/옵션 중 일부가 켜져 있는지예를 들어, 게임에서 캐릭터에게 여러 상태(중독, 화상, 빙결, ...) 효과가 동시에 걸릴 수 있고,중독 : 1 1 / 화상 : 1 2 / 빙결 : 1 4 의 값이라 가정하면위 코드와 같이 여러 상태를 숫자 하나로 압축해서 관리할 수 있다. *퍼미션 설정 : 누가 어떤 권한을 가지고 있는가예를 들어, 파일에 대해 읽기, 쓰기, 실행의 권한이 있고,읽기 : 1 1 / 쓰기 : 1 2 / 실행 :..

Algorithm/Baekjoon

백준 5073번 - 삼각형과 세 변(Node.js)

https://www.acmicpc.net/problem/5073 알고리즘 분류 : 수학 구현 기하학 우선, 문제를 보면 구현하기엔 매우 간단하게 보인다.문제에 나와있는 삼각형의 세 변의 각각의 조건만 코드로 작성해주면 되기 때문이다.각각의 조건은 아래와 같이1) 세 변의 길이가 모두 같은 경우 -> Equilateral2) 두 변의 길이만 같은 경우 -> Isosceles3) 세 변의 길이가 모두 다른 경우 -> Scalene4) 가장 긴 변의 길이보다 나머지 두 변의 길이의 합이 길지 않은 경우 -> Invalid이 문제를 풀기 위해 처음 생각했을 때 if문을 범벅으로 사용해도 될정도로 매우 구현하기엔 간단한 문제라고 생각했다.하지만, 단순히 if문만을 사용해서 풀기에는 코드가 엄청 길어질거같다라는 ..

Algorithm/Notion

복잡성 분석

복잡성 분석(Complexity Analysis)알고리즘의 효율성을 결정하는 과정일반적으로 알고리즘의 시간 복잡도와 공간 복잡도를 모두 찾는 것을 포함한다.알고리즘이 얼마나 좋은지, 다른 알고리즘보다 더 나은지를 판단하는 데 효과적으로 사용된다. 시간 복잡도알고리즘이 얼마나 빨리 실행되는지를 측정하는 기준Big O 표기법을 사용하여 표현한다. 공간 복잡성알고리즘이 보조 메모리를 얼마나 차지하는지 측정하는 기준Big O 표기법을 사용하여 표현한다.

Algorithm/Baekjoon

백준 10828번 - 스택(Python)

https://www.acmicpc.net/problem/10828 10828번: 스택첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.www.acmicpc.net알고리즘 분류 : 구현 자료 구조 스택  스택가장 먼저 들어간 자료는 맨 아래쪽에 쌓이고, 가장 나중에 들어간 데이터는 제일 위에 쌓이기 때문에 먼저 들어간 자료일수록 나중에 나오고, 늦게 들어간 자료일수록 먼저 나오는 데이터 구조로  이를 후입선출 구조라고 하며 영어로는 LIFO = Last In First Out라고 한다.Python에서는 리스트..

Algorithm/Baekjoon

백준 2252번 - 줄 세우기(Node.js)

백준 2252번 - 줄 세우기(Node.js)https://www.acmicpc.net/problem/2252  알고리즘 분류 : 그래프 이론  위상 정렬이 문제는 위상 정렬을 이용하는 대표적인 문제이다.  위상 정렬1. 진입 차수가 0인 모든 노드를 큐에 넣는다.2. 큐가 빌 때까지 다음 과정을 반복한다.    └ 큐에서 원소를 꺼내 해당 노드에서 나가는 간선을 그래프에서 제거한다.     나의 첫 번째 풀이제출 시 결과는 틀렸습니다31번째 줄 : graph는 어떤 학생이 어느 학생의 앞에 와야 하는지를 의미한다. N + 1크기의 배열을 []으로 초기화 해준다.32번째 줄 : inDegree는 몇 명의 학생이 i 번째 학생보다 앞에 있는지를 의미한다. N + 1 크기의 배열을 0으로 초기화 해준다.