일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 수리능력
- TOEIC문법
- BFS
- 파이썬
- 너비우선탐색
- 공기업공부
- dfs
- 토익문법정리
- 영단어암기
- 매일매일NCS
- NCS수리자료해석
- TOEIC Vocabulary
- 자료해석
- 토익문법노트
- 문제해결능력
- 다이나믹프로그래밍
- 자바스크립트
- 토익 영단어
- 토익단어
- 데이터베이스
- sqld
- 영단어
- 토익시험준비
- 주어
- 영문법
- TOEIC
- 브루트포스
- 영어문장
- 알고리즘
- BOJ
- Today
- Total
목록분류 전체보기 (79)
하나씩 알아가기
틀린 부분이 있을 경우, 지적해 주시면 감사하겠습니다. DOM(Document Object Model, 문서 객체 모델) 웹페이지 내에 있는 모든 콘텐츠를 프로그래밍적으로 제어할 수 있게 해주는 객체모델. DOM을 통해서 우리의 JavaScript가 브라우저와 상호작용 할 수 있게 됩니다. HTML 엘리먼트들을 생성하거나 수정하거나 삭제하기 클래스, 스타일, 속성을 지정하기 이벤트에 반응하기 최상위 개체는 Node이며 JavaScript 객체로 표현됩니다. 이 DOM 계층도를 눈에 익을 때 까지 보도록 합시다. 우리가 늘 사용하는 메소드나 속성들이 각각의 DOM인터페이스 중 어디에 속하는 지 생각 해보면 DOM이 어떻게 설계되었는지 이해하는 데 도움이 될 것이라고 생각합니다. BOM(Browser Obj..
n = int(input()) dp = [0 for _ in range(91)] dp[1] = 1 dp[2] = 1 for i in range(3, n+1): dp[i] = dp[i-2] + dp[i-1] print(dp[n]) 0으로 시작하지 않으면서 11을 부분 문자열로 갖지 않는 수를 이친수라 합니다. 일단 낮은 차수의 항들을 수동으로 구해줍시다. 1 2 3 4 1 10 100 101 1000 1010 1001 첫번째 두번째 항을 주목해 보면 한자리 수 이친수에 01을 붙이고 두자리 수 이친수에 0을 붙이면 101, 100으로 세자리 수의 이친수가 되는 것을 발견할 수 있습니다. 두자리 수 이친수에다가 01을 붙이고 세자리 수 이친수에 0을 붙이면 1001, 1000, 1010으로 네자리 수의 이친..
틀린 부분이 있을 경우, 지적해 주시면 감사하겠습니다. HTTP 개념 HTTP는 Hyper Text Transfer Protocol의 약자로 웹 서버와 클라이언트 간의 통신을 위한 규약을 말합니다. 우리가 평소에 인터넷을 사용하기 위해서는 이 HTTP를 통해서 사용자는 웹 페이지의 정보를 서버에 요청하고 전달 받아서 화면을 받아보는 과정이 이루어져야 합니다. HTTP는 누구나 정보를 열람할 수 있는 플레인 텍스트 개념이라서 요즘에는 HTTPS가 선호됩니다. S는 secure를 뜻하며, 좀 더 보안된다고 볼 수 있습니다. 특징 1. 비연결성(Connectionless) 클라이언트가 서버에게 리소스를 요청한 후 응답을 받으면 연결을 끊어버리는 특징입니다. 연결을 끊어버리는 이유는 다수의 클라이언트와 연결을 ..
틀린 부분이 있을 경우, 지적해 주시면 감사하겠습니다. CORS는 Cross-Origin Resource Sharing의 약자로 교차 출처 자원 공유를 의미합니다. HTTP헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에게 알려주는 메커니즘입니다. 웹 애플리케이션은 리소스가 자신의 출처와 다를 때 교차 출처 HTTP 요청을 실행합니다. ※출처(Origin)를 구분하는 방법인데 프로토콜과 호스트, 그리고 포트번호가 같으면 동일 출처로 봅니다. 이 셋 중 하나라도 다르면 동일 출처 정책(SOP)이 적용되서 요청에 실패합니다. 잠깐 동일 출처 정책에 대해 짚고 넘어가겠습니다. 사실 CORS는 이것으로부터 시작된 이야기입니다. SO..
인접한 두 사탕을 교환하여 그 때마다 사탕 길이를 계산하고 가장 긴 사탕 길이를 출력하면 해결할 수 있는 문제입니다. 양옆에 인접한 사탕을 스왑하고 가로 길이 확인 -> 갱신 세로 길이 확인 -> 갱신 스왑한 사탕을 되돌려 놓음 위아래로 인접한 사탕을 스왑하고 가로 길이 확인 -> 갱신 세로 길이 확인 -> 갱신 빨간 글씨로 쓴 부분은 반복되기 때문에 함수로 빼 주었습니다. 길이를 계산해 주는 함수에서 중요한 것은 내부 루프입니다. index가 범위를 벗어나지 않도록 0 ~ n-1(n-1미포함)까지 설정 해주고 인접한 두 사탕이 같은 사탕이면 count를 증가시켜 주고 다른 사탕이면 길이를 갱신하고 다음번 비교를 위해 count를 1로 초기화 시킵니다 파이썬의 함수 내부에 global 키워드를 사용하면 ..
E, S, M 은 각각의 범위를 가지고 있습니다. 그리고 그 범위를 넘어가면 1로 초기화 시켜주는 규칙만 지켜주며 전체를 카운트 해주는 변수를 결과로 출력해주면 됩니다. e, s, m = map(int, input().split()) year = 0 esm = [0, 0, 0] while esm[0] != e or esm[1] != s or esm[2] != m: year += 1 esm[0] += 1 esm[1] += 1 esm[2] += 1 if esm[0] == 16: esm[0] = 1 if esm[1] == 29: esm[1] = 1 if esm[2] == 20: esm[2] = 1 print(year) www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라..
틀린 부분이 있을 경우, 지적해 주시면 감사하겠습니다. 아홉 개의 input이 들어오는데 이 중 두 개의 input은 fake고, 일곱 개의 input의 합이 100인 것들만 오름차순으로 출력하면 되는 간단한 문제입니다. 브루트 포스(Brute Force) 조합 가능한 모든 문자열을 하나씩 대입해 보는 방식으로 문제를 해결하는 방법 브루트 포스라 이름은 거창한데 원시적인 방법으로 문제를 풀어야 할 경우 사용하는 것 같습니다. 그런데 모든 문제에서 사용되지 않나요?.. 사실 이런 용어가 잘 와닿지는 않네요ㅠ 조금 더 내공이 쌓이면 어떤 경우에 브루트 포스 방법이 사용되는 지 파악이 되는 날이 오면 좋겠네요 문제로 돌아와서 9개의 데이터 중 2개의 데이터만 뽑아서 100이 되면 출력하는 식으로 문제를 풀겠습..
문제를 해결하기 위한 점화식을 구하려면 2차원 dp를 만들어야 합니다. dp[n][1] = dp[n-1][2] + dp[n-1][3] dp[n][2] = dp[n-2][1] + dp[n-2][3] dp[n][3] = dp[n-3][1] + dp[n-3][2] n을 만들기 위한 방법의 수 중 1로 끝나는 경우를 dp[n][1]이라고 합시다. dp[n][1]은 ~~~ + 1 이런 식입니다. dp[n-1][?] 의 경우 1로 끝날 수 없기 때문에 2나 3이 올 수 밖에 없기 떄문에 dp[n][1] = dp[n-1][2] + dp[n-1][3]가 성립합니다. 그리고 dp[n][2]의 경우 주의해야 할 점은 ~~~ + 2로 끝났기 때문에 dp[n-2][?] 이 와야 한다는 점입니다. ※반복문 내부의 점화식에 %1..
틀린 부분이 있을 경우, 지적해 주시면 감사하겠습니다. 이번에는 자바스크립트에서의 new가 어떤 역할을 하는 지, this의 new 바인딩이 어떻게 이루어지는지에 대해 알아보겠습니다. 「new 연산자는 사용자 정의 객체 타입 또는 내장 객체 타입의 인스턴스를 생성한다」 자바스크립트에서도 자바 처럼 new 키워드가 존재합니다. 그러나 인스턴스를 생성하는 전통적인 의미의 new와는 의미가 다릅니다. 「new 키워드는 일반 함수 호출 도중에 가로채어 원래 수행할 작업 외에 객체 생성이라는 잔업을 더 부과하는 지시자고 new로 호출되는 대상은 생성자가 아닌 그냥 일반 함수일 뿐이다」 먼저 생성자(constructor) 부터 다릅니다. 자바스크립트에서 생성자는 앞에 new 연산자가 있을 때 호출되는 일반 함수에 ..
정수 n을 입력 받아서, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 문제입니다. 1, 2, 3이라는 숫자가 고정이 되어 있습니다. 규칙을 찾아봅시다. n 1 2 3 4 5 경우의 수 1 2 4 7 ? 네번째 까지 구한 결과 f(1) + f(2) + f(3) = f(4)가 성립합니다 다섯번째 까지만 수동으로 구해봅시다 11111 1112 1121 1211 2111 122 212 221 113 131 311 23 32 총 13가지입니다. f(2) + f(3) + f(4) = f(5) 가 성립하므로 f(n) = f(n-3) + f(n-2) + f(n-1) 로 점화식을 도출할 수 있습니다. dp = [0 for _ in range(11)] dp[1] = 1 dp[2] = 2 dp[3] = 4 fo..