분류 전체보기
-
[React] SetStateComputerScience/React 2020. 7. 11. 21:22
class App extends React.Component { state = { count : 0, }; add = () => { (생략...) }; (생략...) } add = () => { //this.setState({ count: this.state.count + 1 }); this.setState(current => ({ count : current.count +1, })); }; add함수로 setState함수를 호출한다. current에는 현재 state가 넘어온다. state에 setState에 접근하여 변경시킬 수 있다. state는 직접 접근해선 안됨.
-
[Spark] RDD란?ComputerScience/스파크 2020. 7. 10. 15:46
"RDD란 스파크가 사용하는 핵심 데이터 모델로서 다수의 서버에 걸쳐 분산 방식으로 저장된 데이터 요소들의 집합을 의미하며, 병렬처리가 가능하고 장애가 발생한 경우에도 스스로 복구될 수 있는 내성(tolerance)를 가지고 있다" "Spark revolves around the concept of a resilient distributed dataset (RDD), which is a fault-tolerant collection of elements that can be operated on in parallel." https://spark.apache.org
-
[프로그래머스]큰 수 만들기ComputerScience/코딩테스트 2020. 7. 10. 00:01
문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 1자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수 미만인 자연수입니다. 입출력 예 number k return 1924 2 94 1231..
-
[프로그래머스] 위장ComputerScience/코딩테스트 2020. 7. 9. 23:08
문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clothe..
-
[프로그래머스] 베스트앨범ComputerScience/코딩테스트 2020. 7. 4. 00:36
문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입니..
-
[프로그래머스] 여행경로ComputerScience/코딩테스트 2020. 7. 3. 17:59
여행경로 문제 설명 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 ICN 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다. tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가는 항공권이 있다는 의미입니다. 주어진 항공권은 모두 사용해야 합니다. 만일 가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 return 합니다. 모든 도시를 방문할 수 없는 경우는 주어지지 않습니다. 입출력 예 tickets return [[IC..
-
[Unix] fork(), vfork(), Copy On Write, exec()ComputerScience/운영체제 2020. 6. 14. 18:26
유닉스에서 fork()와 exec()를 배웠다. 도대체 fork(), exec()는 무엇일까? 간단히 Process Control을 해준다고 보면 된다. fork() fork()는 현재 부모 프로세스를 메모리상에서 복사한 자식 프로세스를 만드는 과정. 이러한 과정에서 자식은 부모의 변수, 스택 ,힙의 내용을 복사하게 된다. 이 때, PCB또한 복사된다. PCB는 프로세스를 지원하고 관리하기 위한 정보들이 담긴 데이터 구조체이다. 부모와 자식의 주소공간은 다르다. 부모 프로세스는 원래대로 실행되고, fork()를 이용해 생성된 프로세스도 다음 라인부터 실행된다. fork()의 return값은 proceeid를 출력하게 되는데 fork()의 return 값이 0이면 자식 프로세스 0보다 크면 부모 프로세스 ..
-
[운영체제] Atomic연산, CAS(CompareAndSwap)에 대하여, ABA문제ComputerScience/운영체제 2020. 6. 14. 17:43
스핀락, 뮤텍스, 세마포어, 모니터 모두 하나의 Thread가 임계영역을 Lock한 후 작업을 수행하는 절차이다. 하지만 sychronized화 하게 되면 한 개의 Thread가 해당 블락을 전체 lock(점유)하기 때문에 다른 Thread는 아무작업을 하지 못하게 되고 이로 인해서 기다리는 상황이 발생하고 낭비가 심해진다. 그래서 Non-blocking한 방법, Lock-Free한 방법으로 동기화 문제를 해결하기 위한 방법이 바로 Atomic연산이다. 그리고 이 동작의 핵심 원리는 CAS(Compare And Swap)에 있다. CAS(CompareAndSwap)알고리즘이란? 멀티 쓰레드 환경, 멀티 코어 환경에서 각 CPU는 메인 메모리에서 변수값을 참조하는 것이 아닌, 각 CPU에서 캐시 영역에서 ..