728x90

분류 전체보기 374

[Programmers] level2 - 두 큐 합 같게 만들기 (Python) : 2022 카카오 테크 인턴십

▶두 큐 합 같게 만들기 - 2022 카카오 테크 인턴십 (level 2) ▶문제 https://school.programmers.co.kr/learn/courses/30/lessons/118666?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 두 개의 숫자 리스트 (queue) 안의 숫자들 합이 같도록 만들기 (숫자 리스트 (queue) 2개) 두 리스트 합이 같도록 만드는데 드는 작업 횟수 반환 조건: 작업 1회 = 한쪽 리스트 첫 번째 value를 pop 해서 다른 리스트 마지막 위치에 insert. 두 리스트의 길이는..

[Programmers] level1 - 성격 유형 검사하기 (Python) : 2022 카카오 테크 인턴십

▶성격 유형 검사하기 - 2022 카카오 테크 인턴십 (level 1) ▶문제 ▶출력 https://school.programmers.co.kr/learn/courses/30/lessons/118666?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 보통은 문제를 적는데, 너무 길어서 링크로 대체하도록 하겠습니다. ▶제한사항 1 ≤ survey의 길이 ( = n) ≤ 1,000 survey의 원소는 "RT", "TR", "FC", "CF", "MJ", "JM", "AN", "NA" 중 하나입니다. survey[i]의 첫 번째 ..

[Programmers] level2 - 올바른 괄호 (Python) : 스택/큐

▶올바른 괄호 - 스택/큐 (level 2) ▶문제 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()"는 올바른 괄호입니다. ")()(" 또는 "(()("는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. ▶제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. ▶출력 ▶풀이 괄호는 항상 열린 후에 닫혀야 한다. 그렇기 때문에 열린 괄호는 queue에 저..

[Programmers] level2 - 배달 (Python) : Summer/Winter coding(~2018)

▶배달 - Summer/Winter coding(~2018) (level 2) ▶문제 N개의 마을로 이루어진 나라가 있습니다. 이 나라의 각 마을에는 1부터 N까지의 번호가 각각 하나씩 부여되어 있습니다. 각 마을은 양방향으로 통행할 수 있는 도로로 연결되어 있는데, 서로 다른 마을 간에 이동할 때는 이 도로를 지나야 합니다. 도로를 지날 때 걸리는 시간은 도로별로 다릅니다. 현재 1번 마을에 있는 음식점에서 각 마을로 음식 배달을 하려고 합니다. 각 마을로부터 음식 주문을 받으려고 하는데, N개의 마을 중에서 K 시간 이하로 배달이 가능한 마을에서만 주문을 받으려고 합니다. 다음은 N = 5, K = 3인 경우의 예시입니다. 위 그림에서 1번 마을에 있는 음식점은 [1, 2, 4, 5] 번 마을까지는 ..

[Programmers] level2 - 행렬의 곱셈 (Python) : 연습문제

▶행렬의 곱셈 - 연습문제 (level 2) ▶문제 2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요. ▶제한사항 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다. 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다. 곱할 수 있는 배열만 주어집니다. ▶출력 ▶풀이 행렬 곱셈을 어떻게 하는지 알기만 하면 풀 수 있는 문제다. def solution(arr1, arr2): answer = [[0 for _ in range(len(arr2[0]))] for _ in range(len(arr1))] for i in range(len(arr1)): for j in range(len(arr2[0]..

[Programmers] level2 - 게임 맵 최단거리 (Python) : 깊이/너비 우선 탐색(DFS/BFS)

▶게임 맵 최단거리 - 깊이/너비 우선 탐색(DFS/BFS) (level 2) ▶문제 ▶제한사항 ▶출력 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번에도 그림이 많은 문제여서 링크로 대체하겠습니다. ▶풀이 간단하게 dfs, bfs를 이용해서 풀면 되는 문제다. deque를 이용해서 popleft를 하는 것은 bfs에 해당하는 풀이이다. 나는 bfs를 이용해서 문제를 풀었고, 방문한 적이 있는 곳을 기록하기 위해서 visited를 이용했다...

[Programmers] level2 - 영어 끝말잇기 (Python) : Summer/Winter coding(~2018)

▶영어 끝말잇기 - Summer/Winter coding(~2018) (level 2) ▶문제 ▶제한사항 문제 및 제한 사항은 너무 긴 거 같아서 링크로 대체하겠습니다. https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ▶출력 입출력 예 #1 3명의 사람이 끝말잇기에 참여하고 있습니다. 1번 사람 : tank, wheel, mother 2번 사람 : kick, land, robot 3번 사람 : know, dream, tank 와 같은 순서로 말..

[Programmers] level2 - 2 x n 타일링 (Python) : 연습문제

▶2 x n 타일링 - 연습문제 (level 2) ▶문제 가로 길이가 2이고 세로의 길이가 1인 직사각형 모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 다음과 같이 2가지 방법이 있습니다. 타일을 가로로 배치하는 경우 타일을 세로로 배치하는 경우 예를 들어서 n이 7인 직사각형은 다음과 같이 채울 수 있습니다. 직사각형의 가로의 길이 n이 매개변수로 주어질 때, 이 직사각형을 채우는 방법의 수를 return 하는 solution 함수를 완성해주세요. ▶제한사항 가로의 길이 n은 60,000 이하의 자연수입니다. 경우의 수가 많아질 수 있으므로, 경우의 수를 1,000,000,007으로 나눈 나머지를 retur..

[Programmers] level2 - 수식 최대화 (Python) : 2020 카카오 인턴십

▶수식 최대화 - 2020 카카오 인턴십 (level 2) ▶문제 https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 보통은 문제를 적는데, 너무 길어서 링크로 대체하도록 하겠습니다. ▶제한사항 expression은 길이가 3 이상 100 이하인 문자열입니다. expression은 공백 문자, 괄호 문자 없이 오로지 숫자와 3가지의 연산자(+, -, *) 만으로 이루어진 올바른 중위 표기법(연산의 두 대상 사이에 연산기호를 사용하는 방식)으로 표현..

[Programmers] level2 - 짝지어 제거하기 (Python) : 2017 팁스타운

▶짝지어 제거하기 - 2017 팁스타운 (level 2) ▶문제 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. ▶제한사항 문자열의 길이 : 1,000,000 ..

[백준/BOJ] platinum5 달성!

드디어 solved.ac에서 platinum5를 달성했다. 방학하고부터 하루 한 문제를 푸는 걸 목표로 꾸준히 달렸고, 100점 정도 남았었다. 오늘까지 20일 연속 문제 풀기도 달성한 상태이다. 방학하고 매일매일 쉬지 않고 한 문제씩 풀었더니 달성한 거 같다. 사실 마지막 문제를 풀기 전에 53점이 남았었다. 한 문제만 푼다고 해서 53점을 한 번에 채울 수 있지 않았다. 평소에 골드 3 한 문제를 풀면 3점이 오르니까...ㅜ 그전부터 class 5를 한 문제씩 풀어왔고 마침 class 5도 한 문제만 풀면 달성할 수 있었다. 그래서 한 문제를 골드 3 수준으로 찾아보았고 때마침 학교 수업시간 과제로 풀었던 문제를 발견했다. 그 문제를 보면서 코드를 조금 변경해서 제출했더니 정답이 나왔고, class ..

BOJ Code 2022.07.11

[백준/BOJ] gold3 - 2252번 줄 세우기 (Python)

▶2252 - 줄 세우기 ▶문제 N명의 학생들을 키 순서대로 줄을 세우려고 한다. 각 학생의 키를 직접 재서 정렬하면 간단하겠지만, 마땅한 방법이 없어서 두 학생의 키를 비교하는 방법을 사용하기로 하였다. 그나마도 모든 학생들을 다 비교해 본 것이 아니고, 일부 학생들의 키만을 비교해 보았다. 일부 학생들의 키를 비교한 결과가 주어졌을 때, 줄을 세우는 프로그램을 작성하시오. ▶입력 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 횟수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의미이다. 학생들의 번호는 1번부터 N번이다. ▶출력 첫째 줄에 학생들을 앞에서부터 줄을 세..

BOJ Code/Gold 2022.07.11

[백준/BOJ] gold2 - 16946번 벽 부수고 이동하기 4 (Python)

▶16946 - 벽 부수고 이동하기 4 ▶문제 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 한 칸에서 다른 칸으로 이동하려면, 두 칸이 인접해야 한다. 두 칸이 변을 공유할 때, 인접하다고 한다. 각각의 벽에 대해서 다음을 구해보려고 한다. 벽을 부수고 이동할 수 있는 곳으로 변경한다. 그 위치에서 이동할 수 있는 칸의 개수를 세어본다. 한 칸에서 이동할 수 있는 칸은 상하좌우로 인접한 칸이다. ▶입력 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. ▶출력 맵의 형태로 정답을 출력한다. 원래 빈칸인 곳은 0을 출력하고, 벽인 곳은 이동..

BOJ Code/Gold 2022.07.11

[컴퓨터망] Internet Security

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. 뒤에 1초라고 적힌 그림(캡처)은 교수님께서 수업하실 때 1초 만에 넘어간 부분이다. 별로 중요하지 않은 부분이라는 생각이 들어서 그림만 넣고 따로 설명은 하지 않겠다. ▶Network Layer Security IP 보안(IPSec)은 IETF가 네트워크 수준에서 패킷에 대한 보안을 제공하기 위해 설계한 프로토콜 모음이다. IPSec은 IP 계층에 대해 인증된 기밀 패킷을 만드는 데 도움이 된다. 전송 모드의 IPSec은 IP 헤더를 보호하지 않는다. 전송 계층에서 들어오는 정보만 보호한다. tunnel mode는 IP 패킷 ..

[컴퓨터망] Cryptography and Network Security

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. 뒤에 1초라고 적힌 그림(캡처)은 교수님께서 수업하실 때 1초 만에 넘어간 부분이다. 별로 중요하지 않은 부분이라는 생각이 들어서 그림만 넣고 따로 설명은 하지 않겠다. ▶Introduction 정보를 보호하려면 무단 액세스(confidentiality)로부터 숨겨야 하며, 무단 변경(integrity)으로부터 보호되어야 하며, 필요할 때(availability) 권한 있는 엔터티가 정보를 사용할 수 있어야 한다. Threat to integrity (홈이 없다.) Modification Masquerading Replaying..

[컴퓨터망] ICMPv6

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. 뒤에 1초라고 적힌 그림(캡처)은 교수님께서 수업하실 때 1초 만에 넘어간 부분이다. 별로 중요하지 않은 부분이라는 생각이 들어서 그림만 넣고 따로 설명은 하지 않겠다. ▶Introduction TCP/IP 프로토콜 스위트의 버전 6에서 수정된 또 다른 프로토콜은 ICMP이다. ICMPv6(Internet Control Message Protocol version 6)는 버전 4와 동일한 전략과 목적을 따른다. ICMPv6는 ICMPv4보다 더 복잡하다. Error messages와 Informational messages는 v..

[컴퓨터망] IPv6 Protocol

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶Packet Format IPv6 패킷은 아래 그림에 나와 있다. 각 패킷은 필수 기본 header와 payload로 구성된다. payload는 옵션 확장 헤더와 상위 계층의 데이터라는 두 부분으로 구성된다. 상위 계층의 확장 헤더와 데이터는 최대 65,535바이트의 정보를 포함하는 반면, 기본 헤더는 40바이트를 차지한다. Traffic Class : ver4에서 service type를 가리킨다. Flow label : end to end(hw) control 하려고 했는데 현재는 잘 안 쓴다. (flow는 socket과 ..

[컴퓨터망] IPv6 Addressing

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶Topics Discussed in the Section Notations Address Space Three Address Types Broadcasting and Multicasting /뒤에 숫자는 의미 있는 bit의 개수 ▶Address Space Allocation IPv4의 주소 공간처럼 IPv6의 주소 공간은 크기가 다양한 여러 블록으로 나뉘며 각 블록은 특별한 목적을 위해 할당된다. 대부분의 블록은 아직 할당되지 않았으며 나중에 사용할 수 있도록 남겨두었다. 주소 공간에서 각 블록의 할당과 위치를 더 잘 이해하기..

[컴퓨터망] Multimedia (ex. 동영상 볼 때)

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶Introduction 아래 그림에 표시된 것처럼 오디오 및 비디오 서비스를 크게 세 가지 범주로 나눌 수 있다. Streaming stored audio/video(녹방), Streaming live audio/video(생방) 및 Interactive audio/video다. 스트리밍은 다운로드가 시작된 후 사용자가 파일을 청취(또는 시청)할 수 있음을 의미한다. Streaming stored audio/video은 압축된 오디오/비디오 파일에 대한 주문형 요청을 말한다. Streaming live audio/video은 ..

[컴퓨터망] Network Management: SNMP

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. SNMP : simple network management protocol 망 관리하는 것에 대해서 작성할 것이다. ▶Concept SNMP는 manager와 agent의 개념을 사용한다. 즉, 일반적으로 host인 관리자가 일련의 agent(일반적으로 router 또는 server)를 제어하고 모니터링한다. Manager : 망 관리자 (agent 상태 감시) Agent : 장비 (router, switch) ▶Management Components 관리 작업을 수행하기 위해 SNMP는 SMI(Structure of Manag..

728x90