전체 글

전체 글

    [Python] 보석쇼핑

    https://programmers.co.kr/learn/courses/30/lessons/67258?language=python3 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 투 포인터 알고리즘을 사용! 1. 먼저 배열 인덱스를 저장하는 start 변수와 end 변수를 선언 2. 배열의 start 와 end 구간이 “모든 종류의 보석을 포함하는 구간”이 될 때 까지 end 인덱스를 증가 진열대 번호 : 1 2 3 4 5 6 7 8인덱스 번호 : 0 1 2 3 4 5 6 7보석의 종류 : D R R D D E S D start = 0 end = 0 구간안..

    [유닉스 시스템 프로그래밍] Ch10. 시스템V의 프로세스간 통신

    [유닉스 시스템 프로그래밍] Ch10. 시스템V의 프로세스간 통신

    (본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) 학습목표 - 유닉스 시스템V에서 제공하는 IPC기법을 이해한다. - 메시지 큐를 이용해 통신 프로그램을 작성할 수 있다. - 공유 메모리를 이용해 통신 프로그램을 작성할 수 있다. - 세마포어를 이용한 IPC기법을 배운다. 목차 1. 시스템 V IPC 기초 2. 시스템 V IPC 관련 명령 3. 메시지 큐 4. 공유 메모리 5. 세마포어 1. 시스템 V IPC 기초 시스템 V IPC - 시스템 V 계열 유닉스에서 개발해 제공하는 프로세스 간 통신방법 - 메시지 큐, 공유 메모리, 세마포어 공통 요소 - 시스템 V IPC를 사용하기 위해서는 IPC 객체를 생성해야 함. - IPC 객체를 생성하기 위해 공통적으로 사용하는 기본 요소는 키와 식별..

    [유닉스 시스템 프로그래밍] Ch09. 파이프

    [유닉스 시스템 프로그래밍] Ch09. 파이프

    (본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) 학습목표 - 파이프를 이용한 IPC 기법을 이해한다 - 이름 없는 파이프를 이용해 통신 프로그램을 작성할 수 있다 - 이름 있는 파이프를 이용해 통신 프로그램을 작성할 수 있다 목차 1. 파이프의 개념 2. 이름없는 파이프 만들기 3. 복잡한 파이프 생성 4. 양방향 파이프 활용 5. 이름있는 파이프 만들기 1. 파이프의 개념 파이프 - 두 프로세스 간에 통신할 수 있도록 해주는 특수 파일 - 그냥 파이프라고 하면 일반적으로 이름없는 파이프를 의미 - 이름없는 파이프는 부모-자식 프로세스 간에 통신할 수 있도록 해줌 - 파이프는 기본적으로 단방향 2. 이름없는(간단한) 파이프 생성 파이프 생성 : popen() #include FILE *p..

    [유닉스 시스템 프로그래밍] Ch08. 메모리 매핑

    [유닉스 시스템 프로그래밍] Ch08. 메모리 매핑

    (본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) Ch07. 시그널 학습목표 통신프로그램이 무엇인지 이해한다. 메모리 매핑을 이용한 IPC 기법을 이해한다. 메모리 매핑 함수를 사용해 프로그램을 작성할 수 있다. 목차 1. 메모리 매핑의 개념 2. 메모리 매핑 함수 3. 메모리 매핑 해제 함수 4. 메모리 매핑의 보호모드 변경 5. 파일의 크기 확장 6. 매핑된 메모리 동기화 7. 데이터 교환하기 1. 메모리 매핑의 개념 메모리 매핑 - 파일을 프로세스의 메모리에 매핑 - 프로세스에 전달할 데이터를 저장한 파일을 직접 프로세스의 가상 주소 공간으로 매칭 - read, write 함수를 사용하지 않고도 프로그램 내부에서 정의한 변수를 사용해 파일에서 데이터를 읽거나 쓸 수 있음 메모리 매핑과..

    [Python] 수식 최대화

    [Python] 수식 최대화

    programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 파이썬 코드 # 우선순위가 낮은 기호를 기준으로 split() def calc(priority, n, expression): if n == 2: # 마지막 인덱스일 경우 기호 상관없이 eval()에서 연산 수행하면 됨 return str(eval(expression)) if priority[n] == '*': res = eval('*'.join([calc(priority, ..

    [Head First Design Patterns] 07 어댑터 패턴과 퍼사드 패턴

    [Head First Design Patterns] 07 어댑터 패턴과 퍼사드 패턴

    (본 강의 노트는 한빛 미디어의 [Head First Design Patterns]책을 기반으로 하고 있습니다) 07 어댑터 패턴과 퍼사드 패턴 Adapter Pattern & Facade Pattern 07-01. Adapter Pattern 목적 클래스의 인터페이스를 클라이언트가 원하는 형태의 또다른 인터페이스로 변환. 어댑터는 호환되지 않는 인터페이스 때문에 동작하지 않는 클래스들을 함께 동작할 수 있도록 만들어줌 (aka. Wrapper in Java) 어댑터 패턴 정의 디자인 패턴 요소 요소 설명 이름 어댑터(Adapter) 문제 사용 객체의 API가 서로 다름 해결방안 함수를 변환하는 객체를 중간에 넣음 결과 변경 최소화 객체를 감싸는 역할을 함(Object Wrapping) - 서로 호환되지..

    [C++] 키패드 누르기

    [C++] 키패드 누르기

    programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr ver 1.0 거리계산 배열 이용하기 github.com/jiminAn/Algorithm/blob/master/etc/Programmers_2020_kakao_Internship1_ver1.0.cpp jiminAn/Algorithm SW Expert Academy 알..

    [유닉스 시스템 프로그래밍] Ch07. 시그널

    [유닉스 시스템 프로그래밍] Ch07. 시그널

    (본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) Ch07. 시그널 학습목표 시그널의 기본 개념을 이해한다. 시그널을 보내는 방법을 이해한다. 시그널을 받아서 처리하는 기본적인 방법을 이해한다. 시그널 집합의 개념과 사용방법을 이해한다 sigaction 함수를 사용해 시그널을 처리하는 방법을 이해한다. 알람 시그널의 처리방법을 이해한다. 시그널 관련 기타 함수들의 사용방법을 이해한다. 목차 1. 시그널의 개념 2. 시그널의 종류 3. 시그널 보내기 4. 시그널 핸들러 함수 5. 시그널 집합 6. sigaction 함수의 활용 7. 알람시그널과 인터벌 타이머 8. 기타 시그널 관련 함수 01. 시그널의 개념 시그널이란? 소프트웨어 인터럽트 프로세스에 뭔가 발생했음을 알리는 간단한 메시지를 비..