전체 글

전체 글

    백준 1890번 점프 // C++

    백준 1890번 점프 // C++

    문제 점프 N×N 게임판에 수가 적혀져 있다. 이 게임의 목표는 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 점프를 해서 가는 것이다. 각 칸에 적혀있는 수는 현재 칸에서 갈 수 있는 거리를 의미한다. 반드시 오른쪽이나 아래쪽으로만 이동해야 한다. 0은 더 이상 진행을 막는 종착점이며, 항상 현재 칸에 적혀있는 수만큼 오른쪽이나 아래로 가야 한다. 한 번 점프를 할 때, 방향을 바꾸면 안 된다. 즉, 한 칸에서 오른쪽으로 점프를 하거나, 아래로 점프를 하는 두 경우만 존재한다. 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 이동할 수 있는 경로의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 ..

    백준 11053번 가장 긴 증가하는 부분 수열 // C++

    백준 11053번 가장 긴 증가하는 부분 수열 // C++

    문제 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 풀이 동적 계획법(Dynamic Programming)을 사용하는 문제이다. dp[i]의 값은 num[i]을 가장 큰 수로 가지는 가장 긴 증가하는 부분 수열의 길이를 나..

    백준 16953번 A→B // C++

    백준 16953번 A→B // C++

    문제 A → B 정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다. 2를 곱한다. 1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자. 입력 첫째 줄에 A, B (1 ≤ A < B ≤ 10^9)가 주어진다. 출력 A를 B로 바꾸는데 필요한 연산의 최솟값에 1을 더한 값을 출력한다. 만들 수 없는 경우에는 -1을 출력한다. 풀이 bfs 방식의 탐색을 통하여, A가 B가 될 수 있는지 확인한다. 해당 숫자를 작게 만드는 연산은 없기 때문에, 연산 결과가 B보다 큰 경우에는 탐색을 하지 않아도 된다. 1을 가장 오른쪽에 추가하는 연산은 (해당 수 * 10) + 1이다. 또한, B의 최대 값이 10^9인데 임의의 수 X*10가 int 범위를 벗어나는 경우..

    백준 9205번 맥주 마시면서 걸어가기 // C++

    백준 9205번 맥주 마시면서 걸어가기 // C++

    문제 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. 맥주 한 박스에는 맥주가 20개 들어있다. 목이 마르면 안되기 때문에 50미터에 한 병씩 마시려고 한다. 상근이의 집에서 페스티벌이 열리는 곳은 매우 먼 거리이다. 따라서, 맥주를 더 구매해야 할 수도 있다. 미리 인터넷으로 조사를 해보니 다행히도 맥주를 파는 편의점이 있다. 편의점에 들렸을 때, 빈 병은 버리고 새 맥주 병을 살 수 있다. 하지만, 박스에 들어있는 맥주는 20병을 넘을 수 없다. 편의점, 상근이네 집, 펜타포트 락 페스티벌의 좌표가 주어진다. 상근이와 친구들이 행복하게 페스..

    백준 1991번 트리 순회 // C++

    백준 1991번 트리 순회 // C++

    문제 트리 순회 이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오. 예를 들어 위와 같은 이진 트리가 입력되면, 전위 순회한 결과 : ABDCEFG // (루트) (왼쪽 자식) (오른쪽 자식) 중위 순회한 결과 : DBAECFG // (왼쪽 자식) (루트) (오른쪽 자식) 후위 순회한 결과 : DBEGFCA // (왼쪽 자식) (오른쪽 자식) (루트) 가 된다. 입력 첫째 줄에는 이진 트리의 노드의 개수 N(1≤N≤26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례..

    HTML 태그

    HTML 태그

    HTML의 버전에 따라 새로운 태그가 생기기도 하고 없어지기도 함 제목과 단락 요소 HEADING 태그 Hello 문서 내에 제목을 표현하기 위해서 사용 제목의 레벨에 따라 h1 ~ h6 까지 존재 숫자가 낮을 수록 큰 제목을 의미 Paragraph 태그, Linebreak 태그 첫번째 단락 두번째 단락 두번째 단락 : 단락을 나타내는 태그 : 줄바꿈을 나타내는 태그로, HTML에서는 두 개 이상의 공백을 무시하기 때문에 줄바꿈을 하기 위해 사용, 닫기 태그와 내용이 존재하지 않는 빈 태그 텍스트를 꾸며주는 요소 Bold Italic Underline Strike : 글자를 굵게 표시 : 글자를 이탤릭체로 표시 : 글자에 밑줄을 표시 : 글자에 중간선을 표시 앵커 요소 네이버 링크를 생성하는 태그 a태그..

    HTML 문법

    HTML 문법

    태그 Hello, HTML 무언가를 표시하기 위한 꼬리표/이름표 태그를 이용하여 코드를 작성하면, 브라우저가 이를 인식하여 내용을 표현함 태그는 기호를 사용하며, 이 사이에 태그 이름이 들어감 h1이 코드 이름에 해당 여는 태그와 닫는 태그의 두 개의 태그가 한 쌍으로 구성됨 태그 사이에 있는 태그 내용이 실제 브라우저에서 나타남 요소 : 태그 이름 + 내용, 태그와 유사한 의미 HTML 말고도 XML, SGML, XHTML 등의 다른 마크업 언어에서 모두 사용 속성 Hello, HTML 태그에 추가로 정보를 제공하거나, 태그의 동작을 구체적으로 제어하기 위해 사용 시작 태그에 포함되며 속성이름="속성값"의 형태로 이름과 값으로 구성됨 속성값은 " 또는 &#39;로 감싸 표현 Hello, HTML 의미와..

    HTML 이란?

    HTML 이란?

    HTML : Hyper Text Markup Language 웹 페이지를 만들때 사용하는 언어 Hyper Text : 다른 웹 페이지로 넘어가는 Link를 의미 Markup : 프로그래밍 언어의 한 종류로, 정보를 구조적으로 표현 가능 , , 등의 다양한 요소가 존재 각 요소들간의 구분을 위해 태그 ("") 를 사용 .html 파일로 작성 90년대 초반, 영국의 물리학자 팀 버너스리가 개발 연구원들간 신속하게 정보 및 문서를 공유하기 위해 사용 현재의 웹 페이지는 문서로 나타내지는 않지만, 정보를 공유한다는 목적은 동일