일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 자료형
- 노개북
- 리스트
- 이코테
- 컴퓨터네트워크
- data type
- RARP
- DP
- 데이터 통신과 컴퓨터 네트워크
- 파이썬 연산자
- IT5분잡학사전
- 쿠키
- sort()
- 노마드코더
- 컴퓨터 동작방식
- ARP
- 이것이 취업을 위한 코딩테스트다
- 시스템 소프트웨어
- 파이썬 자료형
- icmp
- GIT
- 라우팅
- 쉽게 배우는 데이터 통신과 컴퓨터 네트워크
- 파이썬 정렬
- 데이터통신
- 북클럽
- 기억장치
- 이것이 취업을 위한 코딩 테스트다
- OSI7계층모델
- CS
- Today
- Total
목록전체 글 (91)
뚝딱햄 탈출기
❌ 접근 방식 1 낮과 밤에 각각 +2, -1만큼의 높이를 올라간다. 따라서 날짜를 처음에 카운트 하고 낮과 밤에 움직일 수 있는 높이를 각각 계산한 후, 높이가 V 이상이 되는 즉시 while문을 종료한 후 날짜를 출력한다. import sys a, b, v = map(int, sys.stdin.readline().split()) days = 0 h = 0 while True:# h == v 일 때까지 무한루프 days += 1 h += a# 낮 if (h >= v): break h -= b# 밤 if (h == v): break print(days) 결과는 시간초과. 이 문제의 시간 제한은 0.25초이기 때문에 반복문을 사용하지 않고 구현해야 한다. ✅ 접근 방식 2 반복문을 사용하지 않고 이 문제를..
❌ 접근 방식 1 N개의 줄에 걸쳐 주어지는 수를 num이라는 리스트에 다 넣고 리스트를 오름차순 정렬한 뒤 리스트 요소들을 하나씩 출력했다. import sys n = int(sys.stdin.readline()) num = [int(sys.stdin.readline()) for _ in range(n)] for i in sorted(num): print(i) 제출 후 만나게 된 '메모리 초과' ;;.... 어쩐지 너무 쉽다 했다 ^..^ 대부분 문제들의 메모리 제한이 128MB, 256 MB인 것에 비해 이 문제는 메모리 제한이 8 MB이기 때문에 메모리 초과를 피하는 데에 초점을 두고 풀어나가야 한다. 메모리 초과 발생 이유 for문을 통해 입력값을 리스트(num)에 삽입한 것 sort(), sor..
if ~ else 문을 간결하게 한줄로 작성하고자 할 때 삼항 연산자를 사용한다.if (condition) : # [condition이 True 일 때 실행] else : # [condition이 False 일 때 실행]일반적인 if ~ else 문은 최소 4개의 라인으로 이루어져 있지만, 삼항 연산자를 사용하면 if ~ else 문을 1개의 라인으로 작성할 수 있다. 대부분의 언어에서 삼항 연산자를 작성하는 법은 아래와 같다. 조건문을 만족할 때 (참인 경우) [true] 부분의 실행문을 실행하고, 조건문을 만족하지 않을 때 (거짓인 경우) [false] 부분의 실행문을 실행한다. [condition] ? [true] : [false] // 조건문 ? 조건이 참일 때 (if절 실행문) : 조건이 거짓일..
❌ 접근 방식 1 '-'의 인덱스 값을 찾아서 '-' 바로 뒤에 '('를 삽입하고 '-'가 더 나오지 않는다면 문자열 맨 뒤에 ')'를 삽입, '-'가 더 나온다면 그 앞에 ')'를 삽입하기 .eval() 함수를 통해 문자열 자체를 연산 위의 로직으로 코드를 작성해 보았다. ( 사실 이 코드는 공개하기도 부끄럽다만 TIL 삼아 넣는다 ~ ) .find() 를 사용한다면 () 안의 문자에 해당하는 처음 인덱스 값만 반환되기 때문에 for문을 통해 '-'의 인덱스 값을 빈 배열에 넣어주었다. import sys expr = sys.stdin.readline().rstrip() # '-' 찾기 minus_index = [] for i in range(len(expr)): if expr[i] == '-': mi..
백준 문제를 풀 때 입력값을 직접 받아야 하기 때문에 입력을 받기 위한 코드를 작성하고, 코드 실행 후 터미널에서 입력값을 일일이 쳐야 하는데 오타 가능성도 있고, 여러 값을 넣어야 할 때는 여간 귀찮은 일이 아니다. 그럴 땐 .txt 파일을 별도로 만들어 예제 입력 값을 복붙해 저장해 두고, 실행할. py 파일에서 sys 라이브러리를 import 해준 후 아래 코드를 넣어 입력 값을 불러올 수 있다 ! import sys sys.stdin = open('input.txt')# '예제 입력을 복붙해둔 txt 파일명.txt' 이 때, .py 파일과 .txt 파일은 같은 디렉터리에 위치해야 한다. 이 방법은 간결하기도 하지만, readline()을 불러오기 좋다고 생각한다. readline()으로 입력을 받..
2차원 리스트 입력받기 여러 줄에 걸쳐 공백 없이 입력된 입력값을 2차원 리스트로 저장하려면 어떻게 해야 할까? N × M 크기의 2차원 배열을 입력받아보자. 첫 번째 줄에 행의 길이 N과 열의 길이 M이 주어지고, 두 번째 줄부터 N + 1번째 줄까지는 각 행의 요소들이 입력된다. 이때, 각 행의 요소들은 공백 없이 입력되어 있다. 4 5 00110 00011 11111 00000 import sys # N, M을 공백을 기준으로 구분하여 입력 받기 n, m = map(int, sys.stdin.readline().rstrip().split()) # 2차원 리스트의 맵 정보 입력 받기 graph = [] for _ in range(n): graph.append(list(map(int, sys.stdin..