https://www.acmicpc.net/problem/11723 알고리즘 분류 : 구현 비트마스킹 문제를 다 풀고 나니 Node.js 언어는 제출을 지원을 안하는걸 알았다.그래서 일단 블로그에 내가 푼 코드를 올리려고한다.(맞았는지 틀렸는지는 모르겠지만 ... testCase의 출력대로 제대로 나오는것은 확인했다...) 이 문제는 비트마스킹을 모른다면 배열을 이용해서 풀 수도 있고, 알고있다면 비트마스킹을 활용해서 풀 수 있는 문제처럼 보인다.나는 이 문제를 풀기위해 비트마스킹을 공부했.. 우선, 비트마스킹을 이용해서 문제를 풀었기 때문에 비트마스킹에 대해 전혀 모른다면 아래 글을 한번 읽고 오는게 조금이나마 도움이 될것같다.https://hoonni3002.tistory.com/175 비트 마스킹..
비트마스킹(BitMasking)정수의 이진 표현을 이용해 특정 비트(bit)를 조작하거나 검사하는 기술0과 1로 구성된 이진수 표현에서 원하는 자리의 비트를 다루는 방법플래그 관리, 퍼미션 설정, 효율적인 상태 추적 등에 사용된다. *플래그 관리 : 여러 개의 상태/옵션 중 일부가 켜져 있는지예를 들어, 게임에서 캐릭터에게 여러 상태(중독, 화상, 빙결, ...) 효과가 동시에 걸릴 수 있고,중독 : 1 1 / 화상 : 1 2 / 빙결 : 1 4 의 값이라 가정하면위 코드와 같이 여러 상태를 숫자 하나로 압축해서 관리할 수 있다. *퍼미션 설정 : 누가 어떤 권한을 가지고 있는가예를 들어, 파일에 대해 읽기, 쓰기, 실행의 권한이 있고,읽기 : 1 1 / 쓰기 : 1 2 / 실행 :..
https://www.acmicpc.net/problem/5073 알고리즘 분류 : 수학 구현 기하학 우선, 문제를 보면 구현하기엔 매우 간단하게 보인다.문제에 나와있는 삼각형의 세 변의 각각의 조건만 코드로 작성해주면 되기 때문이다.각각의 조건은 아래와 같이1) 세 변의 길이가 모두 같은 경우 -> Equilateral2) 두 변의 길이만 같은 경우 -> Isosceles3) 세 변의 길이가 모두 다른 경우 -> Scalene4) 가장 긴 변의 길이보다 나머지 두 변의 길이의 합이 길지 않은 경우 -> Invalid이 문제를 풀기 위해 처음 생각했을 때 if문을 범벅으로 사용해도 될정도로 매우 구현하기엔 간단한 문제라고 생각했다.하지만, 단순히 if문만을 사용해서 풀기에는 코드가 엄청 길어질거같다라는 ..
복잡성 분석(Complexity Analysis)알고리즘의 효율성을 결정하는 과정일반적으로 알고리즘의 시간 복잡도와 공간 복잡도를 모두 찾는 것을 포함한다.알고리즘이 얼마나 좋은지, 다른 알고리즘보다 더 나은지를 판단하는 데 효과적으로 사용된다. 시간 복잡도알고리즘이 얼마나 빨리 실행되는지를 측정하는 기준Big O 표기법을 사용하여 표현한다. 공간 복잡성알고리즘이 보조 메모리를 얼마나 차지하는지 측정하는 기준Big O 표기법을 사용하여 표현한다.
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에서는 리스트..
백준 2252번 - 줄 세우기(Node.js)https://www.acmicpc.net/problem/2252 알고리즘 분류 : 그래프 이론 위상 정렬이 문제는 위상 정렬을 이용하는 대표적인 문제이다. 위상 정렬1. 진입 차수가 0인 모든 노드를 큐에 넣는다.2. 큐가 빌 때까지 다음 과정을 반복한다. └ 큐에서 원소를 꺼내 해당 노드에서 나가는 간선을 그래프에서 제거한다. 나의 첫 번째 풀이제출 시 결과는 틀렸습니다31번째 줄 : graph는 어떤 학생이 어느 학생의 앞에 와야 하는지를 의미한다. N + 1크기의 배열을 []으로 초기화 해준다.32번째 줄 : inDegree는 몇 명의 학생이 i 번째 학생보다 앞에 있는지를 의미한다. N + 1 크기의 배열을 0으로 초기화 해준다.