반응형
반응형
폼(form) 이란? 폼이란, 사용자가 뭔가를 입력하는 형태의 것을 말한다. 로그인창에서 아이디와 비밀번호를 입력하는 박스가 이에 해당된다. 로그인 폼을 예시로 폼의 작동 방식에 대해 설명해 보겠다. 사용자가 아이디와 비밀번호를 입력하고 '로그인' 버튼을 누르면 입력한 내용이 웹 서버로 보내진다. 서버에서는 데이터베이스를 뒤져서 사용자가 보낸 아이디와 비밀번호가 서로 일치하는지 확인하고 그 결과를 브라우저로 보낸다. 이처럼 폼과 관련된 대부분의 작업은 데이터베이스를 기반으로 한다. 텍스트 박스나 버튼과 같은 폼의 형태는 HTML 태그를 이용하고, 그 폼에 입력된 사용자 정보를 처리하는 것은 PHP, ASP, JSP 같은 서버 프로그래밍을 이용한다. 폼 만들기 - 태그 폼 요소들 태그와 태그 사이에 여러 ..
https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 난이도: solved.ac 골드 3 알고리즘 분류 그래프 탐색, 너비 우선 탐색(BFS) 접근 방법 지금까지 풀었던 BFS 문제에서 사용했던 visited 배열에 한 차원을 더 추가시켜 벽을 부순 적이 없는 상태에서의 방문 표시는 visited[][][0]에 나타내고, 벽을 부순 적이 있는 상태에서의 방문 표시는 visited[][][1]에 나타내었다. 큐에는 현재 위치 ..
그래프 문제를 풀 때 노드의 개수 N의 범위가 매우 크면 벡터의 크기를 함부로 설정하기가 난감하다. vector graph[100000]; 와 같이 할당하면 N = 10처럼 노드의 개수가 적은 경우에 메모리 낭비가 되고, 그렇다고 vector graph[10]; 처럼 작게 할당해버리면 N의 범위가 큰 경우에는 범위를 초과해버리기 때문이다. 따라서 vector의 2차원 동적 할당을 이용해 그래프를 만들어준다. vector v; 2차원 벡터란 위와 같이 벡터 안에 벡터를 또 집어 넣는 것이다. 이렇게 하면 v의 행과 열 범위를 동적으로 만들 수 있다. N개의 노드가 있고 M개의 간선이 있는 무방향 그래프가 있다고 해보자. 아래는 N과 M을 입력 받아 M개의 간선 정보를 통해 그래프를 그리는 예시이다. #in..
https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 난이도: solved.ac 골드 3 알고리즘 분류 그래프 이론, 데이크스트라 (Dijkstra) 접근 방법 (풀이 1) 먼저 각 노드 i에서 X로의 최단 거리를 파악하기 위해 모든 노드에 대해 다익스트라 알고리즘을 N번 사용한다. 그리고 dist[X]의 결과를 ans[i]에 저장한다. 그 다음 X에서 다른 모든 노드로의 최단 거리를 파악하는 X를 기준으로 한 다익스트..
https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 난이도: solved.ac 실버 1 분할 정복(Divide and Conquer)을 이용해 푸신 분들이 많던데 나는 그리디(?)로 풀어보았다. A를 B번 곱하는 것은 A의 B승을 구하라는 것과 같다. 따라서 A를 A^B로 만들어주기로 했다. A는 A^1이다. A^1을 A^B로 만드는 과정은 1을 B로 만드는 과정과 같다. 우선 거듭제곱의 성질 중 a^b * a^b = a^(2b) 를 알아야 한다. 2^3 * 2^3 = 2^6 (8 * 8 = 64)을 떠올리면 이..
https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 난이도: solved.ac 실버 1 알고리즘 분류 다이나믹 프로그래밍 (dp), 누적 합 (prefix sum) 접근 방법 각 행 별로 1열부터의 누적 합으로 배열에 저장한다. Ex. sum[3][5] = (3,1)부터 (3,5)까지의 합 sum[4][7] = (4,1)부터 (4,7)까지의 합 그리고 x1, y1, x2, y2를 입력받아 (x1, y1)부..