문제 링크 https://www.acmicpc.net/problem/12015 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 조건 시간 제한 : 1s 메모리 제한 : 512MB 해설 증가하는 부분 순열 문제(LDS)를 푸는 알고리즘..
Write( ), WriteLine( ) 메서드에서 format 지정해주기 printf("%d + %d = %d\n", a, b, sum); // a + b = sum 을 출력 C언어에서는 printf 라는 함수에서 출력하려는 값의 format을 지정해준 뒤 문자열 “” 밖에서 파라미터 형식으로 값을 전달해줄 수 있었다. 그래서 함수의 이름도 print+format 인 printf이었다. 사실 C#에서는 + 를 통해 문자열을 쉽게 합쳐서 출력할 수 있었다보니 이런 format 지정을 이용하지 않았다. (굉장한 낭비이긴 하지만, 단순히 백준 문제를 푸는 데 있어서는 크게 영향이 없더라고) 그런데 이 Format 지정을 써줘야하는 문제를 만났다. 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여..
백준 15552번 문제 : 빠른 A + B 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 입력 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. 출력 각 테스트케이스마다 A+B를 한 줄에 하나씩 순서대로 출력한다. 문제는 그렇게 어렵지 않다. 그러나 이 문제를 가져와 글을 쓰는 이유는 이런 조건이 달려있어서 이다. “입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다. 입출력을 더 ..
요즘 금융, 투자와 관련된 여러 책을 읽으면서 인생에 대한 계획을 세워보니 생각보다 학생으로 있는 시간동안이, 군대에 와있는 지금을 포함하더라도 컴퓨터에 관련된 전문적인 지식을 쌓아 능력있는 사람이 되기에는 부족한 시간이라고 느꼈다. 그래서 꾸준히 해오던 라틴어 공부는 잠시 접어두고, 다시 컴퓨터에 대해서 공부하기로 마음먹었다! 물색을 해보니 깃허브에 괜찮은 전공책들이 업로드가 되어있어서 이런걸 읽으면서 컴퓨터구조, 운영체제, 컴파일러 같은 주요 내용들을 익히고, 알고리즘에 대한 공부도 필요하겠다고 생각했다. C#이라는 마음에 드는 언어도 공부할 겸 알고리즘이랑 문제풀이도 꾸준히 해볼까 한다. 깃허브에 커밋도 올리고 밤에 독서실에서 공부도 하면서 성실하게 살아야지. 부디 1년뒤 전역할 때는 발전된 모습이..