본문 바로가기

분류 전체보기

(248)
[C++] 백준 1699번 : 제곱수의 합 (S3) #문제 www.acmicpc.net/problem/1699 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net #풀이 & 학습한 내용 dp[i]를 i의 제곱수 항의 최소개수로 정의하자. 그러면 소스코드의 12~17행에 해당하는 obtimal substructure를 얻을 수 있다. 이때 j를 sqrt(i)까지 반복한다는 것에 주목하자. 이를 위해 #include를 추가해줬다.(j N; for (int i = 1; i
[C++] 백준 1912번 : 연속합 (S2) #문제 www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net #풀이 & 학습한 내용 p[i]는 i번째 원소를 입력받은 배열이고, dp[i]를 "i번째 원소를 마지막으로 하는 연속합의 최댓값"이라 정의하자. 이때 dp[i-1]이 양수라면 dp[i]는 dp[i-1]+p[i]이고, dp[i]가 음수라면 dp[i]는 p[i]가 된다. 이를 이용하여 for문을 구성해 dp배열을 모두 채우고, 최댓값은 dp배열 값들중에 하나이므로 반복문을 통해 최댓값을 구한다. #소스코드 1 2 3 ..
[C++] 백준 14002번 : 가장 긴 증가하는 부분 수열 4 (G4) #문제 www.acmicpc.net/problem/14002 14002번: 가장 긴 증가하는 부분 수열 4 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net #풀이 & 학습한 내용 앞서 풀었던 supremo7.tistory.com/92에서 길이만을 구하는 것이 아닌 부분 수열 자체를 출력해줘야 한다. 이때는 추가로 dp배열에서 역추적하는 배열을 만들어 그 전의 index가 어디인지 저장한다. 그리고 재귀를 통해 출력해준다. #소스코드 1 2 3 4 5 6 7 8 9 10 11 ..
[C++] 백준 11053번 : 가장 긴 증가하는 부분 수열 (S2) #문제 www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net #풀이 & 학습한 내용 시간복잡도를 O(N)으로 구현하려 시도했지만 실패하고 O(N^2)로 구현했다. dp배열에 그 위치를 수열의 마지막으로 갖는 최대 증가하는 부분 수열의 길이를 저장했다. j가 1부터 i까지 움직이며 p[j]dp[i] 조건이 만족되면 갱신되도록 for문을 구성했다. 그리고 문제에서 구하는 최댓값은 dp배열의..
1. HTML&CSS 기초 - (2) HTML 태그 ※ 다음 강좌를 들으며 정리한 내용입니다. www.edwith.org/boostcourse-ui/joinLectures/19142 [부스트코스] 웹 UI 개발 강좌소개 : edwith - 부스트코스 www.edwith.org 1) HTML 태그 소개 - 태그(Tag)는 HTML을 이루고 있는 구성 요소로서 많은 종류의 태그들이 존재합니다. 종류가 다양한 만큼 의미에 맞는 태그를 사용하여 브라우저가 잘 이해할 수 있도록 (시멘틱 마크업) 하는 것이 매우 중요합니다. - 현재 태그의 개수는 대략 130여 개 정도이지만 관련 통계 사이트를 보면, 실제로 대다수의 웹 페이지는 대략 25개 정도의 서로 다른 태그가 사용된다고 합니다.(html, head, body, title 등 기본적으로 들어가는 태그까지 포함..
1. HTML&CSS 기초 - (1) HTML 이해하기 ※ 다음 강좌를 들으며 정리한 내용입니다. www.edwith.org/boostcourse-ui/joinLectures/19142 [부스트코스] 웹 UI 개발 강좌소개 : edwith - 부스트코스 www.edwith.org 1) HTML 소개 - HTML은 Hyper Text Markup Language의 줄임말입니다. 이때, Hyper Text는 단순한 텍스트를 넘어서 웹 페이지의 특정 부분과 연결할 수 있는 기능을 가진 텍스트 즉, 링크이고, Markup Language는 프로그래밍 언어의 한 종류로 정보를 구조적, 계층적으로 표현 가능하다는 특징이 있습니다. - HTML은 파일 확장자로 .html을 쓰며, 그 파일 안에 html 코드를 작성하게 됩니다. 2) HTML 문법 - 태그 - 문법을 크게..
[C++] 백준 2193번 : 이친수 (S3) #문제 www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net #풀이 & 학습한 내용 이번 문제에서 dp배열을 int로 선언하면 "틀렸습니다"가 나온다. long long으로 dp배열을 선언하여 문제를 해결했다. 마지막에 나올 수 있는 수는 0또는 1이고 2차원 배열을 통해 N자리 이친수의 마지막 수가 0인 경우는 dp[N][0]에, 1인 경우는 dp[N][1]에 경우의 수를 저장했다. 그리고 마지막 수가 0인 경우는 바로 앞에 0,1 모두 올 수 있고,..
[C++] 백준 10844번 : 쉬운 계단 수 (S1) #문제 www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net #풀이 & 학습한 내용 int형 범위를 항상 조심하자. int 최대는 대략 2,000,000,000이다(0 3개가 3번). 마지막에 sum을 더할 때도 int의 범위를 넘을 수 있으므로 long long으로 선언해줘야 한다. 이때 백준에서 "틀렸습니다"로 나오기 때문에 헤맬 수 있으므로 조심하자. 모듈로 연산의 성질 (A + B)%C = (A%C + B%C)%C도 항상 생각하자. 문제를 분석할 때 특수한 케이스가 0과 9임을 파악할 수 있다. 마지막에 오는 수에 대해 그 수에 맞는 index에 경우의 수를 저장해 문제..