본문 바로가기

728x90
반응형
SMALL

전체 글

(195)
2048 (Easy) 구현은 그렇게 어렵지 않은 문제였습니다. 우선 어떤 게임인지 알고 있었기 때문에 이해가 빨라서 1시간에 넉넉하게 푼듯합니다. 다만 각 분기 처리에 대해서 고민을 깊게 하지 않으면 훨씬 오래 걸렸을 듯 합니다. 특히 14퍼센트에서 에러가 잡혀서 봤더니, 0처리를 안해줬었더라는.... 예를들어 테스트케이스 4 2 0 0 2 0 0 0 0 0 0 0 0 2 0 0 2 의 경우. 왼쪽으로 옮기면 4 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 이 되야 하지만 0 처리를 해주지 않으면 2 2 0 0 0 0 0 0 0 0 0 0 2 2 0 0 이 되버립니다. 분명 더 좋은 코드가 많을텐데... 여전히 공부가 많이 필요합니다. import sys, copy sys.setrecursionlimit(10 ** ..
CPU 작동 원리 ALU와 제어장치 ALU는 계산하는 부품이고, 따라서 피연산자와 수행할 연산이 필요로 합니다. 피연산자는 레지스터를 통해, 수행할 연산은 제어장치로부터 제어신호로 받아 들입니다. 그리고, ALU는 연산한 결괏값과 플래그를 내보냅니다. 플래그에는 결과값의 음수 여부 혹은 연산결과의 상태 정보 플래그 정보를 담습니다. 부호 플래그: 연산한 결과의 부호를 나타냅니다. 제로 플래그 : 연산 결과가 0인지 여부를 나타냅니다. 캐리 플래그 : 연산 결과 올림수나 빌림수가 발생했는 지를 나타냅니다. 오버플로우 : 연산 결과가 연산 결과를 담을 레지스터보다 큰 상황인지를 나타냅니다. 인터럽트 플래그 : 인터럽트가 가능한지를 나타냅니다. 슈퍼바이저 플래그 : 커널 모드로 실행 중인지, 사용자 모드로 실행 중인지를 나타냅..
명령어 고급언어 - 대부분의 프로그래밍 언어 저급언어 - 컴퓨터가 직접 이해하고 실행할 수 있는 언어 ex) 어셈블리어(assembly language) xcode에서도 종종 레이어 문제있을 때 뜨곤함. 컴파일 언어 - 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급 언어 ( 컴파일 : 소스코드 전체가 저급 언어로 변환(목적 코드)되는 과정 ) 인터프리터 언어 - 소스 코드가 한 줄씩 실행되는 고급 언어 ex) Python ( 인터프리터 : 소스 코드를 한 줄씩 저급 언어로 변환하여 실행해 주는 도구 ) 소스 코드 내에 오류가 하나라도 있으면 컴파일이 불가능한 컴파일 언어와는 달리, 인터프리터 언어는 소스 코드를 한 줄씩 실행하기 때문에 소스 코드 N번째 줄에 문법 오류가 있더라도 N-1번..
NCS - 정보기술6 정보기술모의고사 오답노트... 오픈소스 - 오픈 소스를 사용하는 경우에는 라이선스의 종류, 사용자 수, 기술의 지속 가능성 등을 고려해야 한다. Entity-Control-Boundary Boundary object - 다음과 같은 스테레오 타임은 시스템과 외부 액터와의 상호작용을 담당하는 클래스이다. Control obejct - 시스템이 제공하는 기능의 로직 및 제어를 담당하는 클래스이다. Entity object - 시스템이 유지해야 하는 정보를 관리하는 기능을 전담하는 클래스이다. 웹 서비스 구성도 MVC패턴 뷰 컴포넌트은 모델 컴포넌트 영역에서 처리한 정보를 보여준다. 동적다이어그램의 장단점 시퀀스다이어그램은 객체의 상태변화를 구체화하는 장점이 있다. 커뮤니케이션 다이어그램은 상세 객체 활성화 ..
NCS - 정보기술5 빅데이터 빅데이터 처리에서 맵리듀스의 개념과 원리에 대해 설명하시오. 맵리듀스(MapReduce)는 대규모 데이터 처리를 위한 분산 컴퓨팅 프레임워크입니다. 맵리듀스는 구글에서 개발되었으며, 하둡(Hadoop)과 같은 다른 분산 시스템에서도 많이 사용됩니다. 맵리듀스는 크게 두 개의 단계로 이루어집니다. 첫 번째는 맵(Map) 단계로, 이 단계에서는 입력 데이터를 분할하여 여러 개의 작은 데이터 조각으로 나눕니다. 그리고 이러한 데이터 조각들을 여러 대의 컴퓨터에서 병렬로 처리하여 중간 결과를 생성합니다. 이 중간 결과는 키-값 쌍으로 구성됩니다. 예를 들어, 맵 함수는 주어진 문서에서 각 단어를 추출하고, 각 단어와 그 단어가 출현한 횟수를 키-값 쌍으로 생성합니다. 두 번째는 리듀스(Reduce) 단..
NCS - 정보기술4 보안 암호화에서 대칭키와 공개키 암호화 방식의 차이점에 대해 설명하시오. 대칭키 암호화와 공개키 암호화는 암호화 방식에서 가장 일반적으로 사용되는 두 가지 방식입니다. 이들 간의 주요 차이점은 키의 관리와 안전성입니다. 대칭키 암호화(Symmetric Key Encryption) 대칭키 암호화는 하나의 비밀 키를 사용하여 암호화와 복호화를 수행하는 방식입니다. 즉, 암호화된 데이터를 복호화하려면 동일한 비밀 키를 사용해야 합니다. 대칭키 암호화는 암호화 및 복호화 과정이 간단하고 빠르며, 대부분의 경우 공개키 암호화보다 빠릅니다. 하지만 키를 안전하게 관리하는 것이 어렵습니다. 키가 유출될 경우, 암호화된 데이터는 쉽게 해독될 수 있습니다. 공개키 암호화(Public Key Encryption) 공개키 ..
NCS - 정보기술3 네트워크 TCP와 UDP의 차이점에 대해 설명하시오. TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 모두 인터넷 프로토콜(IP) 위에서 동작하는 전송 계층 프로토콜입니다. 그러나 두 프로토콜은 다음과 같은 차이점이 있습니다. 연결 지향성(Connection-Oriented) vs 비연결성(Connectionless): TCP는 연결을 설정하고 데이터를 전송하기 전에 먼저 연결 설정 과정을 거쳐야 합니다. 이에 반해 UDP는 연결 설정 과정 없이 데이터를 즉시 전송할 수 있습니다. 신뢰성(Reliability): TCP는 전송된 데이터의 신뢰성을 보장합니다. 이를 위해 재전송, 오류 검사 및 흐름 제어 등의 기능을 제공합니다. UDP는 ..
NCS - 정보기술2 프로그래밍 객체 지향 프로그래밍(OOP)의 특징에 대해 설명하시오. 객체 지향 프로그래밍(OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나로, 프로그램을 객체의 모음으로 구성하는 방식입니다. OOP의 주요 특징은 다음과 같습니다. 캡슐화(Encapsulation): 객체의 상태와 행위를 하나로 묶고, 외부에서 접근할 수 없도록 보호하는 것입니다. 객체가 필요한 정보만을 공개하고, 내부 구현을 숨기는 것이 가능해져 정보 은닉이 가능해집니다. 상속(Inheritance): 이미 존재하는 클래스를 기반으로 새로운 클래스를 만들어내는 것입니다. 상속을 통해 코드 재사용이 용이해지며, 상위 클래스의 속성과 메서드를 하위 클래스가 모두 상속받아 사용할 수 있습니다. 다형성(Polymorphism): 같은 메서드가 다..

728x90
반응형
LIST