일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 쿠키
- 파이썬 연산자
- icmp
- 노마드코더
- 데이터 통신과 컴퓨터 네트워크
- data type
- 라우팅
- 기억장치
- RARP
- OSI7계층모델
- 이것이 취업을 위한 코딩테스트다
- 컴퓨터네트워크
- 파이썬 정렬
- 이것이 취업을 위한 코딩 테스트다
- CS
- sort()
- 파이썬 자료형
- ARP
- 노개북
- 북클럽
- GIT
- 데이터통신
- 컴퓨터 동작방식
- 시스템 소프트웨어
- 리스트
- 이코테
- DP
- IT5분잡학사전
- 자료형
- 쉽게 배우는 데이터 통신과 컴퓨터 네트워크
- Today
- Total
목록전체 글 (94)
뚝딱햄 탈출기

BOM (Browser Object Model)브라우저의 창이나 프레임을 프로그래밍적으로 제어할 수 있게 해주는 객체모델 이다.이를 통해서 브라우저의 새 창을 열거나 다른 문서로 이동하는 등의 기능을 실행시킬 수 있다. 전역객체로 window 가 있으며 하위 객체들로는 location, navigator, document, screen, history 가 포함되어 있다.DOM (The Document Object Model)DOM은 HTML같은 문서의 구조와 정보를 나타내는 트리 형태의 자료구조이다.위에서부터 아래로 순차적으로 탐색여러 요소를 수정해야 한다면 비효율적이다.DOM API를 통해 DOM 구조에 접근해서 조작할 수 있다.DOM API란 DOM을 조작하는 데 사용되는 프로퍼티와 메소드들의 집합..
다이나믹 프로그래밍?다이나믹 프로그래밍이란 하나의 문제를 단 한 번만 풀도록 하는 알고리즘이다. DP와 다르게 분할 정복은 동일한 문제를 다시 푼다.예를 들어 피보나치 수열을 분할 정복을 통해 푼다면 특정 숫자를 구하기 위해 그 n-1와 n-2 에 계속 접근한다.즉, 반복적인 데이터 계산이 발생한다.DP 사용할 수 있는 경우큰 문제를 작은 문제로 나눌 수 있다.작은 문제에서 구한 정답은 그것을 포함하는 큰 문제에서도 동일하다.위의 조건을 만족할 때 다이나믹 프로그래밍을 사용하면 효율적으로 문제를 해결할 수 있다.다이나믹 프로그래밍이란 큰 문제를 작게 나누고, 같은 문제라면 한 번만 풀어 문제를 효율적으로 해결하는 알고리즘 기법이다. 문제를 풀 때, 주어진 문제가 다이나믹 프로그래밍 유형임을 파악해야한다...

접근 방식 2024.03.02 - [Algorithm & Data structure/이론] - Dynamic Programming : DP, 동적 계획법, 다이나믹 프로그래밍 Dynamic Programming : DP, 동적 계획법, 다이나믹 프로그래밍 다이나믹 프로그래밍? 다이나믹 프로그래밍이란 하나의 문제를 단 한 번만 풀도록 하는 알고리즘이다. DP와 다르게 분할 정복은 동일한 문제를 다시 푼다. 예를 들어 피보나치 수열을 분할 정복 hyrmzz1.tistory.com 일단 하향식으로 코드를 작성해야겠다고 생각했다. 처음엔 메모이제이션을 위한 리스트를 아래 솔루션과는 다르게 별도로 만드려고 했는데 너무 복잡했다. 결국 1시간쯤 끄적이다 다른 분들의 솔루션을 보고 로직을 세웠다. 입력값을 담은 리스..

접근 방식 입력으로 주어진 M개의 수와 상근이가 가지고 있는 숫자 카드 중 일치하는 값이 있는지 순차적으로 확인한다. ❌ Solution 1 - 시간 초과 import sys n = int(sys.stdin.readline()) cards = list(map(int, sys.stdin.readline().split())) m = int(sys.stdin.readline()) num = list(map(int, sys.stdin.readline().split())) for i in num: if i in cards: print(1, end=" ") else: print(0, end=" ") 이 코드 내에서 시간이 오래 걸릴만한 부분은 if i in cards라고 생각했다. 찾아보니 리스트는 요소 하나하나를..

접근 방식 처음엔 커서를 하나의 문자열로 두고 편집기 명령어에 따라 이동시키려 했다. 알고리즘 분류가 스택인걸 먼저 확인하고 문제를 접했는데, 커서를 이동시키는 방식을 스택에 대입시키기가 쉽지 않아서 많은 고민을 했는데, 두개의 스택을 사용하면 된다는 아이디어를 접했다. 스택 유형의 문제를 많이 풀어보지 않은 나에겐 꽤나 센세이션 했다 두개의 스택을 만든다. 이를 왼쪽 스택과 오른쪽 스택이라고 가정했다. 두 스택 사이에 커서가 있다고 생각하자. 커서는 고정이 커서 대신 스택의 요소들이 움직인다. 커서는 초기에 문장의 맨 뒤에 위치하고 있다고 했으므로 왼쪽 스택에는 초기 문자열(입력값) 모두를 넣어두고, 오른쪽 스택은 비워둔다. ✅ Solution 1 import sys stack_l = list(sys...

❌ 접근 방식 교집합을 구한 후, A + B의 개수에서 2 * (A ∩ B의 개수)를 빼야겠다고 생각했다. 교집합을 구하기 위해 이중 for문을 사용해 A와 B에 중복되는 요소의 개수 즉 교집합의 개수를 구했다. ❌ Solution 1 - 시간 초과 import sys an, bn = map(int, sys.stdin.readline().split()) a = list(map(int, sys.stdin.readline().split())) b = list(map(int, sys.stdin.readline().split())) cnt = 0 for i in a: for j in b: if i == j: # 교집합 cnt += 1 print(an + bn - cnt * 2) 교집합을 구하는 연산자나 라이브러..