본문 바로가기

c++/Baekjoon Online

(38)
백준 1254 : 팰린드롬 만들기 www.acmicpc.net/problem/1254 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 � www.acmicpc.net 1. 처음에 바보같이 맨 뒤에만 문자 추가할 수 있다는거 못보고 insert를 써서 풀었었다 #include #include using namespace std; int main() { string a; cin >> a; int flag = 1; while (flag == 1) { flag = 0; int start_index = 0; int end_index = a.size() - 1; while (start_..
백준 17135 : 캐슬 디펜스 C++ www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 후기 1. 무난하게 풀릴줄 알았는데 테케에 많이 걸려서 고생 무쟈게 한 문제 2. 거리가 똑같은게 여러개면 가장 왼쪽거 죽여야되는거를 적용안해서 계속 틀려서 너무 빡쳤었다 풀이 1. 조합으로 궁수 위치 설정 2. 나는 게임 끝나는거를 어차피 n이 15이하니까 그냥 n번만큼 루프 돌게 했다 3. 각 루프마다 죽일 적 정하고, 죽이고, 적들 한칸씩 내려오고 이 순서대로! 심플! #include #include #include..
백준 17406 : 배열 돌리기 4 c++ www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net 후기 1. 시간은 쫌 걸렸지만 난이도는 어렵지 않은 시뮬레이션 문제!! 2. 돌리기 작동시키는게 조금 오래걸린다 3. 순서 정하는거도 순열로 하면 편하다!!!!(이걸 얻어갑니다) 풀이 1. 순열로 명령어 순서 정하기 2. 정한 순서대로 회전 시행 3. 돌리기 다 끝났으면 답 업데이트 #include #include #include using namespace std; struct ..
백준 17371 : 게리맨더링 c++ www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 후기 1. 각 도시별로 연결 여부를 확인하는게 제일 힘들었다. 2. 당연히 queue 써야되는건데 생각이 안나서 vector로 하려다가 쌩고생했다 3. 이렇게 구글링 안하고 기출문제 풀면 기분이 좋다 ㅎㅎ 풀이는 주석에 친절하게 적혀있지만 그래도 요약하자면 1. n명을 두팀으로 나누는건 '1~ 2/n'명을 1팀, 나머지를 2팀으로 하면된다 2. 조합을 써서 지역 나눈다 3. 지역들끼리 서로 연결이 잘 되어 있나 확인!! ( 팀 가능..
백준 17136 : 색종이 붙이기 C++ www.acmicpc.net/problem/17136 17136번: 색종이 붙이기 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크�� www.acmicpc.net 후기 1. 처음에 큰 색종이부터 대입시키면서 했는데 안되길래 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ..
백준 1937 : 욕심쟁이 판다 c++ www.acmicpc.net/problem/1937 1937번: 욕심쟁이 판다 n*n의 크기의 대나무 숲이 있다. 욕심쟁이 판다는 어떤 지역에서 대나무를 먹기 시작한다. 그리고 그 곳의 대나무를 다 먹어 치우면 상, 하, 좌, 우 중 한 곳으로 이동을 한다. 그리고 또 그곳에서 www.acmicpc.net 풀이 1. 일단 기본적으로는 완전 탐색이지만 2. 만약 0이 아닌 값이 들어있으면 바로 리턴하는 DP방식! 3. 주위에 자기 값보다 큰 대나무 값이 있으면 '그 좌표의 DP 값 +1' 과 현재 '자기 DP 값' 비교!! #include #include #include using namespace std; int n; int map[501][501]; int dp[501][501] = { 0, }; in..
백준 10844 : 쉬운 계단 c++ www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 나는 왜이렇게 dp가 어려울까... #include #include #include using namespace std; int main() { int dp[101][10]; // 번째 , 0~9 int n; int sum=0; cin >> n; dp[1][0] = 0; for (int i = 1; i
백준 17070 파이프 옮기기 1 c++ www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 그냥 시뮬레이션 기초 그 자체 #include #include #include using namespace std; int answer = 0; int map[20][20] = {0, }; int n; // first의 값이 똑같으면 가로! // second의 값이 똑같으면 세로 // 둘다 다르면 대각선 bool in_map(int r, int c) { if (r n || c n) re..