목록C (21)
DY의 세상구경
LCS 성공문제집 시간 제한메모리 제한제출정답맞은 사람정답 비율1 초128 MB208493266142.728%문제LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다.예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.입력첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다.출력첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를 출력한다.예제 입력 복사ACAYKP CAPCAK 예제 출력 복사4 힌트출처문제를 만든 사람: baekjoon 123456789101112131415161718192021222..
보통 C, C++에서 입력 출력을 받을 때 printf, scanf보다 cout, cin이 편하기 때문에(개인적으로 그럴지도...) 처음에는 cout, cin을 사용하였으나 printf, scanf에 비해 cout, cin(endl)은 상당히 느리다. 이와 같은 현상에도 불구하고 cin, cout을 사용하고 싶다면std::ios::sync_with_stdio(false)를 코드 초반부에 적어준 후에 cin, cout을 사용한다면 printf, scanf만큼 빠른 사용이 가능해진다. cin, cout이 C 라이브러리에서 stdio buffer와 싱크를 맞추다 보니 느려진다고 한다.특히 endl같은 경우 위의 싱크와 상관없이 느린 출력의 주범이 된다고 하여 요즘에는 주로 printf, scanf를 사용한다.
JAVA, C, C++ 공통 대단한 알고리즘 노하우나 팁은 아니지만 실수를 방지할 수 있고 약간의 팁이라고 할 수 있어서 하나씩 정리.. 보통 알고리즘 문제에서는 배열을 사용하기 마련이다. 알고리즘 문제를 풀 때 만약 입력값이 2000개 들어온다고 하면 int a[2000] 이런식으로 잡는데 사실 문제는 없지만 보통은 1부터 2000까지가 0부터 1999까지보다 편하게 느껴질 것이다. 때문에 보통은 2000개 들어온다고 한다면 int a[2001] 이런식으로 잡거나 사실 메모리 조금 더 쓰는것이 문제가 틀리는 것 보다 낫다고 생각하기 때문에 보통 int a[2222] 등 넉넉하게 잡는다. 이렇게 잡으면 for loop를 돌 때기존에 for(int i = 0; i < 2000; ++i) 등으로 사용하던 것..
1516 : 단어 세기제한시간: 1000 ms 메모리제한: 32 MB 해결횟수: 857 회 시도횟수: 2302 회 임의의 문장을 입력받아 각 단어별로 나눈 후에 단어들의 중복되는 개수를 구하는 프로그램을 작성하시오. (1) 입력된 스트링은 글자의 제한은 없다. 즉 공백이나 ', ' 등도 입력으로 들어 올 수 있다. (2) 입력된 문장에서 각 단어사이의 구분은 공백으로 한다. (3) 단어에는 공백을 제외한 단어들만이 포함된다. 임의의 문장을 입력받는다.(문장의 길이는 200 이하) 하나의 결과가 나온 후에도 계속 새로운 입력을 받다가, "END"가 입력되면 프로그램을 종료하다. 각 단어들의 발생 빈도를 사전순으로 출력한다. [Copy] I AM DOG DOG DOG DOG A AM I I AM OLYMPI..
590 : 함수3 - 자가진단4제한시간: 1000 ms 메모리제한: 0 MB 해결횟수: 519 회 시도횟수: 1096 회 10 이하의 자연수 N을 입력받아 주사위를 N번 던져서 나올 수 있는 모든 경우를 출력하되 중복되는 경우에는 앞에서부터 작은 순으로 1개만 출력하는 프로그램을 작성하시오. [Copy] 3 [Copy] 1 1 1 1 1 2 ... 1 1 6 1 2 2 1 2 3 ... 5 6 6 6 6 6?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647/************************************************************** Problem: 590 User: ..
233 : 함수3 - 형성평가3제한시간: 1000 ms 메모리제한: 0 MB 해결횟수: 612 회 시도횟수: 1235 회 자연수 N과 M을 입력받아서 주사위를 N번 던져서 나온 눈의 합이 M이 나올 수 있는 모든 경우를 출력하는 프로그램을 작성하시오. 단, N은 10 이하의 정수이다. [Copy] 3 10 [Copy] 1 3 6 1 4 5 1 5 4 1 6 3 2 2 6 2 3 5 … 6 2 2 6 3 1?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354/************************************************************** Proble..
1535 : 단어집합(하)제한시간: 1000 ms 메모리제한: 32 MB 해결횟수: 363 회 시도횟수: 908 회 스트링을 입력 한 후, 스트링을 구성하는 단어들 중, 현재 단어목록에 포함이 되어있지 않은 단어를 단어목록의 가장 뒤에 추가하는 프로그램을 작성하시오. (1) 처음에는 단어의 목록이 하나도 없다. (2) 단어의 구분은 공백으로 한다. (3) 스트링은 계속 입력받으며, 프로그램이 종료되지 않는 이상 기존의 단어들의 목록은 계속 유지된다. (4) 목록에 단어가 없을 경우 단어를 목록의 가장 뒤에 추가하고, 있을경우 추가하지 않는다. (5) 단어목록에는 입력되는 순서대로 저장된다. (6) 알파벳 대.소문자는 구분된다(다르다). 입력되는 스트링의 최대 길이는 50이하이며, 스트링은 최대 10개 이..
1239 : 비밀편지제한시간: 1000 ms 메모리제한: 32 MB 해결횟수: 877 회 시도횟수: 1849 회 병현이는 지은이에게 문자 A, B, C, D, E, F, G, H 로 쓰여진 편지를 날마다 보내는데, 컴퓨터로 보내는 비밀편지로, 한 문자마다 0 또는 1인 숫자 여섯 개를 사용하여 보낸다. 둘 사이의 약속은 다음과 같다. A 000000 B 001111 C 010011 D 011100 E 100110 F 101001 G 110101 H 111010 병현이가 어느 날 001111000000011100 을 보내면 지은이는 이것을 BAD로 이해하게 된다. 그런데 둘 사이에 약속이 잘 만들어져 있기 때문에, 통신에 문제가 생겨서 한 문자를 표시하는 여섯 숫자 중 어느 한 숫자만 틀리게 오는 경우, ..