백준 8892 (C++) 팰린드롬
PS/BOJ 2022. 1. 19. 21:31

완전탐색으로 해결했다. https://www.acmicpc.net/problem/8892 8892번: 팰린드롬 팰린드롬은 어느 방향으로 읽어도 항상 같은 방법으로 읽을 수 있는 단어이다. 예를 들어, civic, radar, rotor, madam은 팰린드롬이다. 상근이는 단어 k개 적혀있는 공책을 발견했다. 공책의 단어는 ICPC www.acmicpc.net #include #include #include #include #include using namespace std; const int MAX = 1001; int t; vector v; int palindrome() { for (int i = 0; i < v.size() - 1; i++) { for (int j = i + 1; j < v.size..

백준 11091 (c++) 알파벳 전부 쓰기
PS/BOJ 2022. 1. 18. 23:08

https://www.acmicpc.net/problem/11091 11091번: 알파벳 전부 쓰기 팬그램은 26개의 알파벳, a~z를 최소 한번씩 모두 사용한 문장을 말한다. 아마 가장 유명한 문장은 이것일 것이다. "The quick brown fox jumps over the lazy dog." 꿍은 다른 문장들중에 팬그램인 것은 없는지 www.acmicpc.net 문제의 태그(분류)는 구현+문자열이다. 이런 문제가 처음 써보는 언어를 맛보기도 좋고 구현 능력에도 도움이 되겠지만 풀 때의 컨디션에 따라 즐겁기도, 지루하기도 한 것 같다. getline으로 s를 입력받고, 해당 문자가 존재함을 alphabet이라는 bool형 배열에 체크했다. 이후 alphabet이 false, 즉 해당 인덱스의 알파..

백준 1431 (C++) 시리얼 번호
PS/BOJ 2022. 1. 13. 17:54

https://www.acmicpc.net/problem/1431 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어 www.acmicpc.net 1. A와 B의 길이가 다르면, 짧은 것이 먼저 온다. 2. 만약 서로 길이가 같다면, A의 모든 자리수의 합과 B의 모든 자리수의 합을 비교해서 작은 합을 가지는 것이 먼저온다. (숫자인 것만 더한다) 3. 만약 1,2번 둘 조건으로도 비교할 수 없으면, 사전순으로 비교한다. 숫자가 알파벳보다 사전순으로 작다. 위의 주어진 조건에 맞게 sort에 사용될 compare함수(이하 cmp)를 작..

백준 2744 (C++) 대소문자 바꾸기
PS/BOJ 2021. 12. 23. 00:42

아이디어 아스키 코드 차트표를 참고하면 대문자와 소문자가 십진수로 32가 차이나는 것을 알 수 있다. 따라서 소문자 a를 기준으로(97) 대소문자를 구분해서 대문자라면 32를 더하여 char로 출력하고, 소문자라면 32을 뺀다. 코드 #include #include using namespace std; using ll = long long; int main(void) { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); string s; cin >> s; for (int i = 0; i < s.size(); i++) { if (s[i] < 97) { cout

백준 2583 (C++) 영역 구하기
PS/BOJ 2021. 11. 27. 14:30

아이디어 1. input 2차원 배열을 예제의 모양대로 처럼 표현하기 위해서 그대로 넣을 수 없고 for (int i = y1; i < y2; i++) { for (int j = x1; j < x2; j++) { arr[m-i-1][j] = 1; } } 를 거쳐야 한다. 2. dfs dfs를 진행하면서, 인접한 행렬은 visit되었다고 체크해주고, main함수에서 이차원 배열이 visit되었는지 세면서 섬처럼 인접한 부분을 cnt해주면 분리된 영역의 개수를 알 수 있다. 여기서 각 분리된 영역의 넓이를 알기 위해 visit되지 않은 칸에 (값은 0) dfs함수가 재귀적으로 호출될 때마다 영역의 넓이를 더해줬다. 그리고 매 영역마다 넓이를 0으로 다시 초기화한다. 코드 #include #include #i..

백준 9461 (C++) 파도반 수열
PS/BOJ 2021. 11. 21. 15:36

수의 규칙을 보고 떠오르는 점화식을 적었다. dp[MAX] 배열에 저장했다. 자료형이 long long이 되어야 함에 유의하자. #include using namespace std; using ll = long long; const int MAX = 105; int n,t; ll dp[MAX]; int main(void) { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); dp[1] = 1; dp[2] = 1; dp[3] = 1; for (int i = 4; i > t; while (t--) { int n; cin >> n; cout

백준 10845 (C++) 큐
PS/BOJ 2021. 11. 18. 12:35

기본적인 구현 문제였다. 이런 문제는 c++의 stl인 queue를 사용해도 되지만, 자료구조 학습 기간이 길지 않은 초보자라면 직접 구현해보길 권장한다. front 와 back을 증가시키기만 하는 linear queue를 구현해도 주어진 input이 배열의 범위를 넘어가지 않아서 circular queue가 필요하지 않은 것 같다. circular queue는 modulo를 사용하면 된다. https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmic..

백준 17352 (C++) 여러분의 다리가 되어 드리겠습니다!
PS/BOJ 2021. 11. 10. 12:29

https://www.acmicpc.net/problem/17352 > n; for (int i = 0; i > a >> b; unionParent(a, b); } int parent_of_1 = getParent(1); for (int i = 2; i

백준 10409 (C++) 서버
PS/BOJ 2021. 11. 7. 13:51

https://www.acmicpc.net/problem/10409 10409번: 서버 당신은 FCFS(First-Come, First-Served)의 규칙에 따라 요청된 일을 처리하는 서버를 담당하게 되었다. 매일, 당신은 일을 처리하기 위해 최대 T분 동안 서버에 시간을 할당할 수 있다. 당신은 오늘 주어 www.acmicpc.net 여태 합한 시간(sum)과 이번에 입력받은 job의 시간의 합이 T를 넘어설 때, 이터레이션 i 를 출력하고 main을 종료한다. main을 종료하지않고 반복문을 빠져나왔다면, 모든 일이 시간 안에 끝난 것이므로 n을 출력한다. #include using namespace std; using ll = long long; const int MAX = 100001; int ..

백준 1516 (C++) 게임 개발
PS/BOJ 2021. 10. 28. 21:03

2021.10.27 - [PS/백준] - 백준 1005 (C++) ACM Craft 백준 1005 (C++) ACM Craft https://www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총. synodic.tistory.com ACM Craft와 유사. https://www.acmicpc.net/problem/1516 1516번: 게임 개발 첫째 줄에 건물의 종류 수 N(1 ≤ N ≤ 500)이 주어진다. 다음 N개의 줄에는 각 건물을 짓는데 걸리는 시간과 그 건물을 짓기 위해 먼저 지어져야 하는 건물들의 번호가 주어진다. ..