티키타카

프로그래밍 공부/Python

[Python] 사전(Dictionary) 자료형 + 정수형 출력

사전(Dictionary) 자료형 매번 딕셔너리 만들 때, 자꾸 버벅거리길래 기록용 import sys input = sys.stdin.readline n = int(input()) lst = list(map(int, input().split())) # Key Value 이렇게 설정 for i in lst: if i in answer: answer[i] += 1 else: answer[i] = 1 [3. 람다식] 이용하여 Keys, Values 정렬 출력 가능 정수(Integer)형 출력 정수+문자 같이 출력할 때 num1, num2 = 5, -10 print("%d와 %d는 다르다" %(num1, num2)) # % 사용 print(f"{num1}와 {num2}는 다르다") # f문자열 print(fo..

CS 공부/알고리즘

유클리드 호제법

유클리드 호제법 유클리드 호제법은 두 수의 최대공약수를 구하는 알고리즘이다. 이 알고리즘은 두 수를 나눈 나머지를 이용해 최대공약수를 구하는 방법이다. 먼저, 큰 수를 작은 수로 나눈 나머지를 구하고, 작은 수를 이전에 구한 나머지로 나눈 나머지를 구한다. 이 과정을 나머지가 0이 될 때까지 반복하다 마지막으로 구한 나머지가 최대공약수가 된다. 조금 더 구체적으로 예를 들자면 49와 21가 있다고 생각해보자 49를 21로 나누어 떨어지지 않으니까 49를 21로 나눈 나머지 값은 7이다. 21을 7로 나누면 나누어 떨어진다.(나머지가 0이 될 때까지 반복한다는 것이 이 뜻) 즉 7이 최대공약수가 되는 것 아래 백준 문제를 풀다가 보게 된 수학공식? 알고리즘? 인데 코드로는 아래처럼 볼 수 있다. [백준] ..

CS 공부/알고리즘

브루트 포스(brute force)

브루트 포스 브루트 포스(brute force), 키 전수조사(exhaustive key search) 또는 무차별 대입(無差別代入)은 조합 가능한 모든 문자열을 하나씩 대입해 보는 방식으로 암호를 해독하는 방법이다. 흔히 암호학에서 연구되나, 다른 알고리즘 분야에서도 사용되고 있다. 문제를 풀다가 리스트, 문자열 다른 방법보다 그냥 하나씩 세는게 더 빠르고 간단할 때 사용 사실 난생 처음 들어보는 단어라서 기록했다. + 추가 문자열에서 패턴 매칭이 어떤 문자열(target) 내부에 다른 문자열(pattern)이 존재하는지를 검증하는 과정을 표현하는 것인데, 이때 존재하는지 찾고자 하는 문자열을 패턴이라고 부른다. 문자열에서의 브루스 포트는 가장 기본적인 방법으로 문자열을 비교해가며 패턴 매칭을 하는 방..

프로그래밍 공부/Python

[Python] try except

[백준] 10951번 A+B - 4 문제 내용 자체는 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 라는 문제인데 몇 번 입력받을 것인지 주어지지 않았다. 그래서 알아서 입력이 멈추면 정지해야 하는데 솔직히 어떻게 할 지 몰랐다. 찾아본 결과 try except를 사용하는 것 같아서 정리해보려고 한다. try except while True: try: A, B = map(int, input().split()) print(A+B) except: break # try: A, B에 int형이 들어가면 A+B 출력 # except: try에 대한 에러 발생 시 break # while이 가장 큰 범위이기 때문에 에러가 생기면 반복이 멈춘다. while과 try except whil..

프로그래밍 공부/Python

[Python] readline, 함수(문자열, 리스트, sort), 람다식, Itertools

0. sys.stdin.readline 시작하기 앞서서 파이썬은 입력받을 때 input() 을 이용하여 받는다.(특히 백준) 근데 요것이 시간을 잡아먹기 때문에 반복문이라도 들어가면 어김없이 시간 초과다. 그것을 방지하기 위해 sys 라이브러리를 이용하게 되는데 그 중 sys.stdin.readline 을 사용한다. 사용 예시와 응용은 밑의 코드 참조 import sys input = sys.stdin.readline # input 대신에 사용하기 위해서 이렇게 선언 #1 보통 한 개의 정수형 받을 때 n = int(input()) #2 한 줄에서 여러 개의 정수형 리스트로 받을 때 lst = list(map(int, input().split())) #3 여러 줄에서 문자열 받을 때 for i in ra..

CS 공부/컴퓨터 네트워크

3. HTTP 기본

1. HTTP(Hyper Text Transfer Protocol) : 문서간에 링크를 통해 연결할 수 있는 프로토콜 하지만, 이제는 문서뿐 아니라 HTTP 메세지에 모든 것을 전송한다. HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML(API) 거의 모든 형태의 데이터가 전송 가능하다. 서버간에 데이터를 주고 받을 때도 대부분 HTTP를 사용한다. 1) HTTP의 역사 HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더 X HTTP/1.0 1996년: 메서드, 헤더 추가 HTTP/1.1 1997년: 가장 많이 사용하며, 우리에게 가장 중요한 버전 RFC2068(1997) → RFC2616(1999)(개정) → RFC7230~7235(2014)(개정) 1.1에 대부분의 ..

CS 공부/컴퓨터 네트워크

2. URI와 웹 브라우저 요청 흐름

URI URI, URL, URN: URI는 로케이터(locator), 이름(name)또는 둘 다 추가로 분류될 수 있다. URL은 우리가 흔히 웹브라우저에서 사용하는 주소 URN은 위 그림과 같이 이름을 부여하는 것인데, 이름만 가지고는 주소를 찾아갈 수 없기에 실제로 사용하기는 힘들다. URI Uniform: 리소스를 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것(제한이 없다.) Identifier: 다른 항목과 구분하는데 필요한 정보 URL, URN URL - Locator: 리소스가 있는 위치를 지정한다. URN - Name: 리소스에 이름을 부여한다. 위치는 변할 수 있지만, 이름은 변하지 않는다. URN 만으로 리소스를 찾을 수 있는 방법이 보편화되지 않았다. ..

CS 공부/컴퓨터 네트워크

1. 인터넷 네트워크(인터넷 통신, IP, TCP, UDP, PORT, DNS)

인터넷 통신 클라이언트에서 다른 클라이언트(컴퓨터)로 데이터를 보낼 경우, 위치에 따라 위성, 해저광케이블, 기타 통신 서버와 같은 노드들을 거쳐 상대 클라이언트에 도달한다. IP(인터넷 프로토콜) 송신/수신 클라이언트에서 정보를 주고받을 때 사용하는 정보 위주의 프로토콜 방대한 네트워크 속 특정 호스트에 데이터를 보내기 위해서는 주소가 필요한데 이를 IP라 부른다. 역할 - 지정한 IP주소에 데이터 전달 - 패킷(Packet)이라는 통신 단위로 데이터를 전달한다. IP 패킷 정보 - 패킷은 전송하고자 하는 데이터의 한 블록(payload)과 주소지 정보(발신지 주소, 목적지 주소), 관리 정보(Header, IPv6와 같이 망이 패킷을 목적지까지 전달하는데 필요한)로 구성된다. - 상대에게 클라이언트 ..

티키택
'분류 전체보기' 카테고리의 글 목록 (5 Page)