목록전체 글 (108)
1seul357

AJAX브라우저에서 페이지 이동 없이 자바스크립트를 통해 HTTP REQUEST를 보내고, 그 응답을 받아서 처리할 수 있는 기능이다.상호 작용성이 향상서버에 대한 요청 감소동적 페이지 북마크가 어려움 JSON자바스크립트 객체를 문자열로 표현이다. 서버 -> 브라우저로 정보를 보낼 때, JSON 파일로 보내고 브라우저는 이를 자바스크립트로 파싱한다. SCOPEvar : function 단위 스코프 변수이며 재선언 및 재할당이 가능하다. var는 함수 내부에 선언된 변수만 지역변수로 한정하며, 나머지는 모두 전역변수로 간주한다.function test() { var a = 10 console.log(a) // 10 if(true) { var a = 20..

AJAXAsynchronous JavaScript And XML (비동기식 JavaScript와 XML)서버와 통신하기 위해 XMLHttpRequest 객체 활용XMLHttpRequest : 서버와 상호작용하기 위해 사용되며 전체 페이지 새로고침 없이 데이터 받을 수 있음,모든 종류의 데이터 받아올 수 있음JSON, XML, HTML 등 다양한 포맷 주고 받을 수 있음페이지를 새로고침하지 않고서도 수행되는 비동기성(일부분만 업데이트) Asynchronous JavaScript동기식(Synchronous) : 순차적, 직렬적 Task 수행. 요청을 보낸 후 응답을 받아야만 다음 동작이 이루어짐비동기식(Asynchronous) : 병렬적 Task 수행. 요청을 보낸 후 응답을 기다리지 않고 다음 동작 이루어..
A → B 문제 정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다. - 2를 곱한다. - 1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자. 해결방법 B -> A가 가능한지 확인하는 것이 빠르다. 만약 B가 2로 나누어진다면 2로 나누고, B 마지막 숫자가 1이라면 1을 제거한다. 2번에 해당하지 않는다면 A로 만들 수 없는 것이므로 -1을 출력하기 위해 flag를 1로 바꿔준다. 반복문이 끝나면 flag를 확인한다. flag가 0이라면 A로 만들 수 있는 것이므로 count를 출력한다. flag가 1이라면 A로 만들 수 없는 것이므로 -1을 출력한다. 소스코드 a, b = map(int, input().split()) count = 1 flag..
블로그2 문제 일우는 블로그를 운영하면서 문제를 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한다. 각 문제를 주어진 색으로 칠할 때 필요한 최소한의 작업 횟수를 구하는 프로그램을 작성하라. 해결방법 그리디 (탐욕 알고리즘) 처음부터 끝까지 빨간색으로 칠한 경우와 파란색으로 칠한 경우를 모두 구한다. flag 변수를 통해 이전의 색깔과 다른 경우에만 +1 을 더한다. 빨간색으로 모두 칠한 경우와 파란색으로 모두 칠한 경우 중 최소값을 출력한다. 소스코드 num = int(input()) arr = input() count1 = 1 count2 = 1 flag = 0 for i in range(num): if arr[i] == "B": flag = 0 continue elif arr[i] == "..
배 문제 지민이는 화물을 배에 실어야 한다. 모든 화물은 박스에 안에 넣어져 있다. 항구에는 크레인이 N대 있고, 1분에 박스를 하나씩 배에 실을 수 있다. 모든 크레인은 동시에 움직인다. 각 크레인은 무게 제한이 있다. 이 무게 제한보다 무거운 박스는 크레인으로 움직일 수 없다. 모든 박스를 배로 옮기는데 드는 시간의 최솟값을 구하는 프로그램을 작성하시오. 단, 모든 박스를 배로 옮길 수 없으면 -1을 출력한다. 해결방법 탐욕 알고리즘 (그리디) 박스와 크레인을 내림차순으로 정렬하고, 박스를 옮길 수 있으면 remove 해서 제거 반복문 하나 돌 때마다 time + 1 추가 옮길 수 없는 경우 -1을 출력해야 하는데 이것은 반복문 들어가기 전에 해야 함 소스코드 import sys input = sys..
강의실 배정 문제 Si에 시작해서 Ti에 끝나는 N개의 수업이 주어지는데, 최소의 강의실을 사용해서 모든 수업을 가능하게 해야 한다. 참고로, 수업이 끝난 직후에 다음 수업을 시작할 수 있다. 해결방법 heapq 오름차순으로 정렬한 후에 가장 빨리 끝나는(값이 가장 작은) 수업 첫번째 값으로 추가 반복문을 돌면서 수업 시작 시간이 이전 수업의 끝나는 시간보다 빠르면 새로운 강의실 추가해야 하므로 heappush 수업 시작 시간이 이전 수업의 끝나는 시간보다 빠르지 않다면 해당 강의실에서 이어서 수업할 수 있으므로 heappop 하고, 끝나는 시간 heqppush 소스코드 import heapq N = int(input()) study = [list(map(int, input().split())) for ..
서강근육맨 문제 서강헬스클럽은 항상 사람이 많아서 PT를 한 번 받을 때 운동기구를 최대 두 개까지만 선택할 수 있다. 헬스장에 있는 NN개의 운동기구를 한 번씩 사용해보고 싶은 향빈이는 PT를 받을 때마다 이전에 사용하지 않았던 운동기구를 선택하기로 계획을 세웠다. 그리고 비용을 절약하기 위해 PT를 받을 때 운동기구를 되도록이면 두 개를 사용하기로 했다. 예를 들어, 헬스장에 총 110개의 운동기구가 있을 경우 PT를 55번 받으면 모든 기구를 다 사용할 수 있다. 99개의 운동기구가 있는 경우에도 PT를 55번 받지만, 마지막 PT를 받을 때는 운동기구를 하나만 사용한다. 또한 근손실이 죽음보다 무서운 향빈이는 PT를 한 번 받을 때의 근손실 정도가 MM을 넘지 않도록 하고 싶다. 이때, MM의 최..
ATM 문제 돈을 인출하는데 걸리는 시간이 P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [2, 5, 1, 4, 3] 순서로 줄을 서면, 2번 사람은 1분만에, 5번 사람은 1+2 = 3분, 1번 사람은 1+2+3 = 6분, 4번 사람은 1+2+3+3 = 9분, 3번 사람은 1+2+3+3+4 = 13분이 걸리게 된다. 각 사람이 돈을 인출하는데 필요한 시간의 합은 1+3+6+9+13 = 32분이다. 이 방법보다 더 필요한 시간의 합을 최소로 만들 수는 없다. 줄을 서 있는 사람의 수 N과 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어졌을 때, 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구하는 프로그램을 작성하시오. 해결방법 탐욕 알고리즘 걸..