본문 바로가기

분류 전체보기

(24)
[백준] 2504번 괄호의 값 (python 파이썬) 문제 설명4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다.한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X가 올바른 괄호열이면 ‘(X)’이나 ‘[X]’도 모두 올바른 괄호열이 된다. X와 Y 모두 올바른 괄호열이라면 이들을 결합한 XY도 올바른 괄호열이 된다.예를 들어 ‘(()[[]])’나 ‘(())[][]’ 는 올바른 괄호열이지만 ‘([)]’ 나 ‘(()()[]’ 은 모두 올바른 괄호열이 아니다. 우리는 어떤 올바른 괄호열 X에 대하여 그 괄호열의 값(괄호값)을 아래와 같이 정의하고 값(X)로 표시한다. ‘()’ 인 괄호열의 값은 2이다.‘[]’ 인 괄호열의 값은 3이다.‘(X)’ 의 괄호값은 2×값(X..
프로그래머스 - 하노이의 탑 (python 파이썬) [level 2] 하노이의 탑 - 12946문제 설명하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있습니다. 게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서 그대로 다른 기둥으로 옮겨서 다시 쌓는 것입니다.한 번에 하나의 원판만 옮길 수 있습니다.큰 원판이 작은 원판 위에 있어서는 안됩니다.하노이 탑의 세 개의 기둥을 왼쪽 부터 1번, 2번, 3번이라고 하겠습니다. 1번에는 n개의 원판이 있고 이 n개의 원판을 3번 원판으로 최소 횟수로 옮기려고 합니다.1번 기둥에 있는 원판의 개수 n이 매개변수로 주어질..
[백준] 수 정렬하기 - 2 (python 파이썬) 문제 설명N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.입력첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.출력첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.   이 문제는 실버5 문제로 간단하다.하지만.. 나는 여기서 4번이나 틀려버렸다.. 안돼...ㅠㅠ # 처음 시도한 코드n = int(input())num = set()for _ in range(n): num.add(int(input()))for i in num: print(i) 이유는1. input() 대신 sys.stdin.rea..
[백준] 별 찍기 - 10 (python 파이썬) 문제 설명재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다.크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다.**** ****N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다.입력첫째 줄에 N이 주어진다. N은 3의 거듭제곱이다. 즉 어떤 정수 k에 대해 N=3k이며, 이때 1 ≤ k 출력첫째 줄부터 N번째 줄까지 별을 출력한다.  처음에 이 문제를 보고 3과 9를 입력했을 때 패턴을 살펴보았다.행을 i, 열을 j 라고 하겠다. 1...
네이버 검색 api 사용하기 (CORS 문제 해결) 요즘 진행하고 있는 프로젝트에 네이버 검색 기능을 추가하려고 했다.예를 들어 '갈비' 를 입력했을때 해당하는 장소 목록이 나오도록 하는 게 목표였다. 네이버에서 제공하는 api 를 사용했다. 이렇게 보면 되게 간단한 작업이다. 다음과 같이 포스트맨으로 테스트 했을 때 잘 되길래 금방 기능을 만들 거라고 생각했다. (ㅎㅎ..)  하지만.. 로컬에서 작업하다보니 cors 문제를 마주했다. 이걸 해결한다고 몇시간을 고군분투했다... 정말 힘들었다ㅠㅠㅠㅠ.. 결론은 크게 두가지 방법으로 해결할 수 있었다. 1. next 의 rewrites 기능 이용하기2. SSR 로 서버에서 데이터 패치하기 위 두 방법의 차이는 api 를 클라이언트에서 호출하는지 서버에서 호출하는지 차이다.  1. next 의 rewrites..
네트워크 (2) - HTTP/HTTPS 1. HTTP인터넷상에서 데이터를 전송하기 위한 프로토콜 - 비연결성응답을 받으면 연결을 끊는다.서버가 클라이언트를 기억하지 못하는 단점을 해결하고자 HTTP Keep Alive 를 사용하여 일정 시간 연결 유지 - 무상태클라이언트가 이전에 요청한 사항을 서버에 저장하지 않는다.클라이언트가 데이터를 모두 가지고 있거나 (쿠키), 서버가 요청 사항을 모두 저장해야 한다. (세션)대신 서버 확장성이 높다.* 쿠키 : 웹 브라우저에 저장하는 데이터 파일. 로그인 정보와 장바구니* 세션 : 서버에 데이터 저장. 보안성은 높지만 서버 과부하 위험  2. HTTP 메시지서버와 통신하기 위해 주고 받는다. - 구조요청 메시지 : 요청 라인, 헤더, 바디응답 메시지 : 상태 라인, 헤더, 바디 - 상태 코드1xx : ..
네트워크 (1) - 계층과 TCP, UDP 1. OSI 7계층네트워크 통신이 이뤄지는 과정을 7단계로 나눈 네트워크 표준 모델각 계층은 독립적이고, 데이터를 송신할 때 각 계층에서 필요한 정보를 추가해 데이터를 가공한다.헤더나 트레일러가 붙고, 이를 데이터 캡슐화라고 한다. 수신부의 같은 계층에서 호환성을 높인다. - 7계층 응용계층 : HTTP, FTP 등의 프로토콜을 프로그램의 UI를 통해 제공한다.- 6계층 표현계층 : 데이터를 표준화된 형식으로 변경한다.- 5계층 세션계층 : 프로그램 간 통신 제어와 동기화를 한다. 세션 유지 및 해제 등- 4계층 전송계층 : 신뢰성 있는 데이터를 전달하기 위한 계층. TCP, UDP 같은 전송 방식과 포트 결정- 3계층 네트워크계층 : 데이터를 전달하기 위한 최적의 경로를 선택하는 라우팅 수행- 2계층 ..
운영체제 요약 정리 1. 메모리 계층 구조- 사용 목적에 따라 메모리 계층이 나눠진다.- 레지스터, 캐시 메모리, RAM, 하드 디스크로 구성된다.- CPU 접근 속도는 레지스터 > 캐시 메모리 > RAM(휘발성) > 하드 디스크 2. 시스템콜- 운영체제에 커널모드와 사용자모드가 있다.- 사용자모드에서 시스템 자원에 직접 접근할 수 없고 시스템콜을 통해 접근해야 한다. 3. 프로세스- 실행 중인 하나의 프로그램이고, 하나 이상의 스레드를 가진다.- PCB 에는 프로세스의 정보가 저장되어 있다.- 프로세스마다 독립된 메모리 공간(코드, 데이터, 스택, 힙)을 가진다.   스택 : 지역변수, 함수의 매개변수, 반환 주소값 등 저장   힙 : 동적 메모리 저장   데이터 : 전역 변수, 정적 변수, 배열, 구조체 저장   코드 ..