문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 이 쯤 되니 카카오의 문자열 사랑이 지독하게 느껴진다. 문자열 반복을 확인해서 가장 짧은 길이를 찾으면 된다. 문제 풀이 문자열 길어봐야 1000이고 달리 방법도 없으니 브루트포스를 이용한다. 코드 #include #include #include using namespace std; int solution(string s) { int len = s.length(); int a..
3.1 운영체제와 컴퓨터 3.1.1 운영체제의 역할과 구조 140 page 인터럽트 사용 이유: CPU는 매우 빠른 장치인데 예를들어 프린터 문서 인쇄를 지시하고 완료될 때 까지 기다릴 수 없다. 하지만 인터럽트가 작동하면 그 동안 다른 작업을 하고 올 수 있음. 인터럽트, 트랩과 시스템 콜 인터럽트 하드웨어 인터럽트 (= 외부 인터럽트) 인터럽트라 하면 일반적으로 하드웨어 인터럽트를 의미함 기계 검사 인터럽트, 입출력 인터럽트, 전원 이상 인터럽트 등 소프트웨어 인터럽트 (트랩) (= 내부 인터럽트) 예외 (Exception) 메모리 참조 오류, 0으로 나누기, 오버플로우 등 시스템 콜 사용자가 의도적으로 일으킨 소프트웨어 인터럽트 운영체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라..
좋은 영상이 있어서 소개드립니다. https://www.youtube.com/watch?v=bW31xiNB8Nc Cross-Origin Resource Sharing, 교차 출처 리소스 공유. CORS가 없으면 never.com을 만들어서 사용자 브라우저에 저장된 자동로그인 등 쿠키 정보를 탈취할 수 있는 등 공격을 할 수 있다. 따라서 이런 공격을 할 수 없도록 브라우저에서 보호하고, 필요한 경우에만 서버와 협의해 요청할 수 있도록 한다. 따라서 CORS는 다른 출처간에 리소스를 공유할 수 있도록 하는 것을 말한다. cf. 출처: 프로토콜, 도메인(호스트), 포트가 같으면 같은 출처 조건: 요청을 받는 백엔드에서 이걸 허락할 출처들을 명시해두면 된다. 허용할 사이트를 지정해두면 http 요청을 보낼 수..
2.1 네트워크의 기초 2.1.1 처리량과 지연 시간 69 page 트래픽: 특정 시점에 링크 내에 흐르는 데이터의 양/ 트래픽이 많을 때는 서버가 다운될 수 있다. 처리량 트래픽 중 전체 혹은 일부가 처리되고 이 처리되는 양이 처리량이다. 실제 얼마나 많은 데이터가 전달되는지에 대한 결과적인 개념 End to End Application의 처리량은 대역폭과 지연시간에 의해 결정됨 대역폭: 네트워크에서 전송되는 데이터의 범위 (허용할 수 있는 동접수와 같은 의미), 대역폭이 낮으면 처리량이 떨어진다. 참고: https://www.inflearn.com/questions/642550/%ED%8A%B8%EB%9E%98%ED%94%BD-%EC%B2%98%EB%A6%AC%EB%9F%89-%EB%8C%80%EC%..
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 16.09%의 정답률을 가졌다. 세번 째 문제던데 보통 여기서 무너졌을 듯 (아마 나도) 데이터베이스 수업을 들었다면 이해가 좀 빠를 것 같은데, 청년 치매를 앓고있는 나에겐 너무나 새로웠다... 후보키를 캐주얼하게 설명하면 속성 차집합 중 튜플들을 유일하게 식별할 수 있으면서 필요없는 속성은 들어가있지 않은 것을 의미한다. 처음 접하는 사람이라면 유일성은 이해가 쉽지만 최소..
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문제가 길어서 겁먹을 수 있지만(내가 겁먹음) 실패율보다 쉬운 문제이다. 코딩테스트 당시 정답률은 실패율(55.57%)보다 약간 높은 59.91%이라고 한다. 주어진 string을 명령문으로 생각하면 첫번째 단어로 동작을 분기해서 각 동작을 처리해주면 된다. 문제 풀이 변하지 않는 아이디라고하면 생각나야하는게 있다. map이다. 닉네임을 골백번 바꿔도 아이디는 변하지 않으므로..
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 나머지 문제 중에서 가장 쉬운 문제로, 실제 코딩테스트가 이루어졌을 때의 정답률은 55.57%이다. 주어진 N개의 스테이지에 대해 실패율을 구하고 실패율에 따라 내림차순으로 정렬한 배열을 리턴하는 문제이다. 문제 설명이 모호하지만, 예시를 보면 스테이지 n의 실패율은 stages 중 n의 갯수 / stages 중 n 이상인 것의 갯수 이다. 문제 풀이 문제는 총 4단계 페이즈..
개요 디자인 패턴을 공부하면서, 팩토리 메서드 패턴과 템플릿 메서드 패턴 개념이 혼동되었다. 따라서 각각의 개념과 차이, 헷갈린 이유와 별개의 개념인 이유를 정리해보았다. 팩토리 패턴 객체 생성을 하는 클래스를 따로 두는 것. 하위 클래스가 어떤 객체를 생성할지 결정하도록 위임하는 디자인 패턴 오버라이드된 메서드가 객체를 반환하는 패턴 템플릿 메소드 패턴을 활용한다. 템플릿 메서드 패턴 상속을 통해 부모클래스 기능을 확장할 때 사용하는 대표적인 방법 변하지 않는 기능은 부모에, 자주 변경되고 확장할 기능은 자식에 만든다. 부모에는 기본적인 로직과 그 기능의 일부를 추상 메소드나 오버라이딩이 가능한 메소드 등으로 만든다. 자식에는 부모에서 만든 메소드를 필요에 맞게 구현한다. 훅 메소드: 선택적으로 오버라..