알고리즘 15

10824_네수

www.acmicpc.net/problem/10824 10824번: 네 수 첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000) www.acmicpc.net 간단하게 stoi 함수를 사용하여 끝내려고 했으나, stoi 함수는 int 형 범위까지만 가능하였다. 이 문제는 자연수 최대값이 1,000,000 이므로 두개를 함치면, 1,000,000,000,000으로 int형 범위를 넘어선다. 그래서 stoi 함수를 직접 구현해주었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 long long fn_stoi(string ss){ int len; long long num; len = 0; num = 0; for(char c : ss) len++; f..

개발/알고리즘 2020.11.15

11655_ROT13

www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net 문자열을 입력받고 알파벳을 13번째 뒤로 미루는 문제입니다. 이 문제에서 중요한 것은 문자열에 빈 칸이 있기 때문에 빈 칸을 무시하는 cin으로 받는 것이 아니라 getline으로 받아줘야 빈 칸까지 입력이 됩니다. seunggi92.tistory.com/55 10820_문자열분석 문자열에 소문자, 대문자, 숫자, 공백의 갯수를 세는 문제입니다. 어렵지 않은 문제이지만, N 갯수만큼 입력을 받는데, N이 주어지지 않아 EOF가 와야 끝낼 수 있도록 해야 하는 것입니다. 저는 get..

개발/알고리즘 2020.11.15

2133_Tri Tiling(DP)

3 * n 타일에 2 * 1 타일을 얼만큼 넣을 수 있는지 푸는 문제이다. 짝수 일 때만 만들어지고 끝에 2와 4가 남았을 때 점화식이 만들어지는 것 같아서, `DP[n] = DP[n - 2] * 3 + DP[n - 4] * 2 ` 으로 했는데 원하는 값이 나오지 않았다. 다시 고민하였을 때, `DP[n] = DP[n - 2] * 3 + DP[n - 4] * 2 + DP[n - 6] * 2 + ... DP[0] * 2 + 2 ` 이런식으로 2개씩 계속 추가적으로 생산이 되는 것을 알 수 있었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include using namespace std; int main(void) { int n; int dp[31] = { 0..

개발/알고리즘 2020.10.31