[2493] 탑, c++
·
DEV/PS
한줄 후기 : 하.. ㅈㄴ쉬워보여서 했는데... 시간초과 죽인다. https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 이상 100,000,000 이하의 정수이다. www.acmicpc.net 자신의 왼쪽에 더 큰 값이 있다면 그 값의 인덱스를 출력하면 됨. 만약 큰 값이 없다면 0 출력 개쉬워보이는 스택문제여서 도전 후 시간초과 2번 받고 성공 ^^ 완전탐색 + 스택쓰면 절대 안된다. 테스트 케이스가 500000까지 나와서 시간초과... 받을 때 마다 조건 검사하고 스택에 ..
[9461] 파도반 수열, c++
·
DEV/PS
한줄 후기 : long long .. https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 문제 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. N이 주어졌을 때, P(N)을 구하 www.acmicpc.net 다이나믹 프로그래밍 문제 처음에 dp 배열을 int형으로 선언했다 틀렸다. 100을 넣어보니 d..
[1158] 단어공부, c++
·
DEV/PS
한줄 후기 : 오랜만에 코딩이니까 쉬운 문자열 부터,, https://www.acmicpc.net/problem/1157 이것도 단순히 아스키코드 이용하여 구현해주면 된다. #include #include using namespace std; int main(){ string s; cin >> s; int a[26]={0}; for(int i=0; i='A' && s[i]='a' && s[i]
[1267] 핸드폰 요금, c++
·
DEV/PS
한줄 후기 : 단순한 수학 계산 문제, 30%대 정답률이지만 쉽다. https://www.acmicpc.net/problem/1267 #include using namespace std; int main(){ int n, y=0, m=0; int arr[21]={0}; cin >> n; for(int i=0; i> arr[i]; } for(int i=0; i
[4949] 균형잡힌 세상, c++
·
DEV/PS
https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 문제 세계는 균형이 잘 잡혀있어야 한다. 양과 음, 빛과 어둠 그리고 왼쪽 괄호와 오른쪽 괄호처럼 말이다. 정민이의 임무는 어떤 문자열이 주어졌을 때, 괄호들의 균형이 잘 맞춰져 있는지 판단하는 프로그램을 짜는 것이다. 문자열에 포함되는 괄호는 소괄호("()") 와 대괄호("[]")로 2종류이고, 문자열이 균형을 이루는 조건은 아래와 같다. 모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이룰 수 있다. 모든 왼쪽 대괄호("[")는 오른쪽 대 www.acmicpc.net 한줄 후기 : 오랜만에 코딩하려니 힘들다.. 괄호와 매우 비슷한 문제, 다만 '(' 이 괄호와 '[' 이 괄호의 처리를 다르게 해줘..
[15947] 아기 석환 뚜루루 뚜루, c++
·
DEV/PS
한줄 후기 : 눈대중으로 푸려니까 힘들다 https://www.acmicpc.net/problem/15947 15947번: 아기 석환 뚜루루 뚜루 첫 번째 줄에 석환이가 N번째로 부를 단어를 출력한다. 여기서 단어란 가사 중 공백으로 구분되는 연속된 알파벳 소문자열을 뜻한다. 단, 출력할 단어가 “tururu...ru”일 때, “ru”가 k(k ≥ 5)번 반복되면 “tu+ru*k”와 같이 출력한다. www.acmicpc.net 그냥 나누고 나머지 이용해서 반복하면 된다. #include using namespace std; int main(){ int n; int mod, n2; cin >> n; n2 = n/14; mod = n%14; if(mod == 1 ||mod==13)cout
[1904] 01 타일, c++
·
DEV/PS
한줄 후기 : 벡터로 풀지 고민하다 망함 https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이의 공부를 방해하기 위해 0이 쓰여진 낱장의 타일들을 붙여서 한 쌍으로 이루어진 00 타일들을 만들었다. 결국 현재 1 하나만으로 이루어진 타일 또는 0타일을 두 개 붙인 한 쌍의 00타일들만이 남게 되었다. 그러므로 지원이는 타일로 더 이상 크기가 N인 모든 2진 수 www.acmicpc.net 처음에 이차원 배열 만들어서 끝자리가 0, 1 일때 나눠 풀다가 사이즈가 너무 커서 벡터로 하려..
[1003] 피보나치 함수, c++
·
DEV/PS
한줄 후기 : 그냥 재귀로 불러 ... https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 다이나믹 프로그래밍 사용 dp배열을 0, 1저장할 거 두개 만들어서 피보나치 돌리면 된다. #include using namespace std; void fibo(int n) { int dp1[42]; int dp2[42]; dp1[0] = 1; dp2[0] = 0; dp1[1] = 0; dp2[1] = 1; for (int i = 2; i
[5567] 결혼식, C++
·
DEV/PS
한줄 후기 : 결혼식은 친구만 불러라 https://www.acmicpc.net/problem/5567 5567번: 결혼식 문제 상근이는 자신의 결혼식에 학교 동기 중 자신의 친구와 친구의 친구를 초대하기로 했다. 상근이의 동기는 모두 N명이고, 이 학생들의 학번은 모두 1부터 N까지이다. 상근이의 학번은 1이다. 상근이는 동기들의 친구 관계를 모두 조사한 리스트를 가지고 있다. 이 리스트를 바탕으로 결혼식에 초대할 사람의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이의 동기의 수 n (2 ≤ n ≤ 500)이 주어진다. 둘째 줄에는 리스트의 길이 m (1 ≤ m www.acmicpc.net BFS를 돌려야 한다. 단 친구의 친구까지만 포함되도록! #include #include #inclu..
[10451] 순열 싸이클, C++
·
DEV/PS
한줄 후기 : 순열 싸이클이 뭔지 몰라서 고민 https://www.acmicpc.net/problem/10451 10451번: 순열 사이클 문제 1부터 N까지 정수 N개로 이루어진 순열을 나타내는 방법은 여러 가지가 있다. 예를 들어, 8개의 수로 이루어진 순열 (3, 2, 7, 8, 1, 4, 5, 6)을 배열을 이용해 표현하면 \(\begin{pmatrix} 1 & 2 &3&4&5&6&7&8 \\ 3& 2&7&8&1&4&5&6 \end{pmatrix}\) 와 같다. 또는, Figure 1과 같이 방향 그래프로 나타낼 수도 있다. 순열을 배열을 이용해 \(\begin{pmatrix} 1 www.acmicpc.net 그냥 받아서 모든 정점 dfs 돌리고 체크 되어있지 않으면 싸이클 + 1 해주면 됨 #..