본문 바로가기

c++

(77)
백준 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
프로그래머스 : 삼각 달팽이 level 2 C++ programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 풀이 1. 밖에서부터 안으로 채워가는 순서를 얌전히 따랐다 2. n의 크기, 밖에서부터 몇번째 겹인지, 젤 위 꼭지점의 index 이렇게 3개를 관리 3. while문 써서 입력쓰 #include #include using namespace std; vector solution(int n) { vector answer; vector v(n+1);//1~n까지 쓰게 int index=..
프로그래머스 : 짝지어 제거하기 level 2 C++ programmers.co.kr/learn/courses/30/lessons/12973?language=cpp 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr #include #include #include using namespace std; int solution(string s) { stack a; for (char i : s) if (a.empty() || a.top() != i) a.push(i); else a.pop(); return a.empty(); } 평소 vector랑 queue..
백준 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..
프로그래머스 : 스킬트리 level 2 C++ programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 풀이 1.주어진 testcase순서대로 2. 주어진 선행스킬순서에 있는 스킬이 나왔다 - 근데 앞선 선행 스킬을 안배운 상태면 flag =0으로 만듬 3. flag가 0이 아닌경우에만 answer+1 #include #include using namespace std; int solution(string skill, vector skill_trees) { int answer = 0; int flag = 1; int check = 0; for(int i = 0; i < skill_trees.size(); i++) //tc { check = 0;//스킬트리 확인..
백준 9205 : 맥주마시면서 걸어가기 c++ www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 문제 풀이 1. 무사히 도착하면 flag를 1로 하여 happy 출력 2. 시작지부터 dfs 시작 DFS 1) 지금 위치랑 목적지랑 거리가 1000이하면 flag =1 하고 종료 2) for문으로 market들 확인, 방문한거면 재낀다 3) 방문안했어도 거리가 1000넘으면 못가니까 재낀다 4) 방문 가능한 market으로 이동 후 DFS #include #include #include #include u..