분류 전체보기 65

[프로그래머스] [python] 전화번호 목록

https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 문제 이해 배열에 있는 스트링 중, 한 스트링이 다른 스트링의 접두어가 되는게 있냐?를 찾는 문제이다. 나의 풀이 def solution(phone_book): answer = True # 접두어 순서대로 정렬함 phone_book.sort() for idx in range(1, len(phone_book)): # 이전의 len이 지금의 len보다 크면 이전..

[한국은행 전산학 기출][2019] 다중 상속의 문제점

한국은행에서 제공하는 필기시험 기출문제는 해설이 제공되지 않습니다. 이 글에서 제시하는 풀이는 제 풀이일 뿐, 정답이 아닐 수 있습니다. 틀린 부분이나 부족한 부분이 있을 시, 댓글로 남겨주세요. 감사합니다. 객체지향 언어의 큰 특징 중 하나인 상속. 상속 하면 그려러니.. 하겠는데 다중 상속에 관한 문제점을 알아볼 수 있었던 문제였다. 문제 객체지향 언어 중 JAVA는 다중 상속이 불가하고 C++은 다중 상속이 가능하다. 상속(inheritance)에 있어서 단일 상속(single inheritance)과 다중 상속(multiple inhteritance)의 차이를 설명하고 다중 상속이 가지는 문제점을 서술하시오. 풀이 단일 상속은 하나의 조상 클래스만을 가지기 때문에 클래스의 관계가 다중 상속보다 명..

VSCode 설정 - (3) C/C++ 빌드 및 실행 설정하기

예전 티스토리에 있던 글을 옮기다가 갑자기 기록해놓고 싶은 커스텀이 생각나서 적어본다. > 그렇게 옛날 티스토리의 글을 열심히 벨로그로 옮기던 나는 다시 티스토리로 회귀하여 벨로그의 글을 가져오고 있음.. VSCode에서는 tasks.json 을 어떻게 설정하냐에 따라 사용법이 굉장히 달라지는데, 열심히 삽질을 하며 얻어낸 만족스러운 C/C++ 대상 tasks.json 사용법을 공유하려고 한다. 사건의 발단 일단 이 글을 쓰는 시점에서는 기록이 남아있지 않아 아쉽지만, 지금 이 설정을 갖기 전에는 C/C++ 파일을 빌드하고 실행할 때 터미널에 쓸데없이 굉장히 긴 커맨드가 자동으로 들어가서 터미널이 더러워지는게 꼴 보기 싫었다. 사실 그냥 내가 구글링해서 tasks.json 복붙해서 그런 참사가 일어나긴 ..

[한국은행 전산학 기출][2010] fork를 이용한 프로세스 생성 과정

문제는 엄청 간단해 보이는데 모르면 못 푸는 그런 기본기 문제.. OS 프 로 세 스 으악 문제 아래 코드가 실행되면 시작 프로세스를 포함하여 총 몇 개의 프로세스가 생성되는가? 단, 프로세스 생성이 실패하는 경우는 없다고 가정한다. int main() { if(fork() > 0) fork(); } 풀이 일단 fork() 함수에 대해 알고 있어야 한다. 어떤 프로그램을 실행 중인 프로세스에서 fork()함수를 호출하면, 새로운 프로세스를 하나 생성하면서 자신은 부모 프로세스가, 새로 생성된 프로세스는 자식 프로세스가 된다. 또한, 자식 프로세스는 부모 프로세스가 자기를 생성한 fork() 다음부터의 모든 작업을 수행하게 되며, 부모 프로세스는 자식 프로세스가 끝날 때 까지 wait한다. 이와 더불어, ..

[한국은행 전산학 기출][2010] 허프만 트리를 이용한 문자열 압축

허프만 트리... 이름과 어렴풋한 트리와 0101101의 비트 나열만 기억나는 나...를 반성해 보고자 풀이를 정리한다. 이 문제는 한국은행에서 공개한 전산학 기출 문제 중, 2010년 전산학술 문제이다. 문제는 다음과 같다. 문제 허프만(Huffman) 압축 알고리즘을 이용하여 ACABFEAFDE의 입력 문자를 압축하려고 한다. 아래 물음에 답하시오. (1) 허프만 트리를 그리고, 허프만 코드를 작성하시오. 데이터 빈도수 등장 확률 A 3 0.3 B 1 0.1 C 1 0.1 D 1 0.1 E 2 0.2 F 2 0.2 (2) '(1)' 문항에서 1글자를 8bit ASCII 코드로 계산하였을 때, 압축률(%)은 얼마인가? (단, 소수 첫째자리에서 반올림하시오.) 풀이 (1) 허프만 트리를 그리고, 허프만 ..

[SELECT] 중복과 NULL을 제거한 개수 세기 (COUNT, NULL, DISTINCT)

오늘의 문제: 프로그래머스 > 중복 제거하기 요구조건 오늘의 문제는 다음의 요구조건을 만족해야 한다. 1. NAME의 개수를 세야 함 - COUNT 2. NAME 중 NULL인 것은 제외해야 함 - WHERE NAME IS NOT NULL 3. NAME의 중복을 제거해야 함 - DISTINCT 정답 SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS WHERE NAME IS NOT NULL 기억해야 할 것 COUNT COUNT는 column에 대한 row의 개수를 세어 주는 것이다. COUNT는 기본적으로 모든 row를 세기 때문에, 중복을 제거하고 싶거나 null을 제거하고 싶으면 WHERE 절을 이용하여 조건을 추가해야 한다. IS NOT NULL WHERE 절에서 해당 값..

[프로그래밍언어론] 오버로딩(overloading)과 오버라이딩(overriding)의 차이점

객체지향 프로그래밍 언어의 특징 중 하나인 다형성에서 비롯되는 오버로딩과 오버라이딩은 제대로 알아놓지 않으면 헷갈리는 개념이다. 이 두가지 개념은 기술 면접이나 전공 시험에서도 많이 나오는 개념이니, 한번 정리해서 머리에 넣어두자. 오버로딩 (overloading) 오버로딩은 하나의 클래스에 이름은 같지만 매개변수의 수나 타입이 다른 메소드를 추가적으로 선언하는 것이다. 오버로딩의 특징은 다음과 같다. 메소드 이름이 같아야 한다. 파라미터 개수가 달라야 한다. 파라미터 개수가 같을 경우, 데이터 타입이 달라야 한다. 리턴형은 같아도 되고 달라도 된다. (다른 거 다 같고 리턴형만 다르면 오버로딩이 아니다.) 오버라이딩 (overriding) 오버라이딩은 상속관계에 있는 메소드와 동일한 이름, 파라미터를 ..

[프로그래밍언어론] 객체지향 프로그래밍 언어의 특징

객체지향 프로그래밍 언어의 특징은 JAVA를 처음 배우다 보면 이론 부분에 항상 배우는 것이다. 그때 당시에는 오 당연 당연 그렇지 하고 지나가겠지만, 생각보다 특징이 뭐야! 응이 뭐야!라고 물으면 뭐가 둥둥 떠다니긴 하는데 말로 안 나온다. 이번 기회에 정리하고, 이해를 기반으로 암기를 하도록 하자. 1. 캡슐화 (Encapsulation) 객체지향 프로그래밍 언어에서는 객체를 통해 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는다. 이러한 캡슐화는 정보 은닉을 통해 외부에서 캡슐 내부의 내용이 보이지 않아 오류의 파급 효과가 적다. 또한, 캡슐화된 객체는 재사용이 용이하다. 2. 정보 은닉 (Information Hiding) 캡슐화에서 가장 중요한 개념으로 쓰이는 것이다. 캡슐화의 정보 은닉을..

AWS DynamoDB를 이용하여 비관계형 DB 구축하기 - (2) Inserting and retrieving data

해당 포스트는 아직 한글화가 진행되지 않은 Projects on AWS : Create and Manage a Nonrelational Database with Amazon DynamoDB 자습서를 진행하면서 자습서의 내용을 한글로 옮기고, 자습서에는 나와있지 않지만 추가적으로 공부한 내용을 덧붙인 포스트이다. 추가적으로 공부를 하면서 참고한 링크는 포스트 하단에 링크해 두었다. 2. Inserting and retrieving data 이번 단계에서는 간단한 예제들을 통해 DynamoDB에 데이터를 넣어 보기도 하고, 검색해 보기도 할 것이다. CreateTable API를 이용하여 DynamoDB에 table을 생성해 볼 것이고, BatchWriteItem API를 이용하여 DB에 데이터를 inser..

AWS DynamoDB를 이용하여 비관계형 DB 구축하기 - (1) Application background

해당 포스트는 아직 한글화가 진행되지 않은 Projects on AWS : Create and Manage a Nonrelational Database with Amazon DynamoDB 자습서를 진행하면서 자습서의 내용을 한글로 옮기고, 자습서에는 나와있지 않지만 추가적으로 공부한 내용을 덧붙인 포스트이다. 추가적으로 공부를 하면서 참고한 링크는 포스트 하단에 링크해 두었다. 1. Application background 이번 모듈에서는 튜토리얼 진행을 위해 AWS Cloud9 환경을 설정하고, 튜토리얼 진행을 위한 코드를 다운받는다. 서점 application을 만든다고 생각해 보자. 이 application은 사용자들에게 판매 중인 책을 기본적인 정보(작가명 등)와 함께 보여 주어야 할 것이다. ..

반응형