본문 바로가기

반응형

Algorithm

(109)
[백준][C++] 10828: 스택 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net - 문제 스택을 구현하는 문제다. push, pop, size, empty, top일때의 함수를 만들어서 풀어도 될 것 같지만, 복잡하지 않으므로 if문으로 대체하였다. - 해설 stack을 이용해서 풀면 된다. - 풀이 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(fa..
[백준][C++] 2563: 색종이 https://www.acmicpc.net/problem/2563 2563번: 색종이 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변 www.acmicpc.net - 문제 100 x 100 도화지에 10 x 10 색종이를 n개 붙인다고 할때 색종이가 차지하는 부분의 총 넓이를 구하는 문제다. - 해설 도화지가 100 x 100으로 주어졌으니 100 x 100 이차원 배열로 풀 수 있다. 넓이를 구하는 방식은 결국 모든 ?픽셀?을 다 더한 값이므로 색종이가 차지하는 부분을 마킹하면서 count해주면 답이 된다. - 풀이 #include using namespace st..
프로그래머스 다항식 더하기 C++ 프로그래머스 : 다항식 더하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 문제 다항식이 주어지면 해당 다항식을 정리하는 문제다. - 풀이 #include #include #include using namespace std; string solution(string polynomial) { string answer = ""; stringstream ss(polynomial); int x = 0, dig = 0; vector s = {}; string temp; while(ss >> temp) s.push_back(temp); for(auto a : ..
[백준][C++] 1904: 01타일 https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net - 문제 00과 1 이 두개의 타일이 주어질 때 만들 수 있는 타일의 모양 개수를 구하는 문제다. - 해설 N의 길이가 길어짐에 따라 1일때 1 2일때 2 3일때 3 4일때 5 와 같이 재귀함수의 형식을 띄고 있다는 것을 토대로 문제를 해결할 수 있다. - 풀이 #include #include using namespace std; int main() // 15746의 나머지 구하는거 깜빡해서 한 5분 ..
[백준][C++] 9184: 신나는 함수 실행 https://www.acmicpc.net/problem/9184 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net - 문제 주어진 재귀함수를 그대로 만들면 어마어마한 실행시간이 필요하기에, 실행시간을 줄일 방법을 찾는 문제다. - 해설 메모이제이션이라는 것을 이용하면 된다. 매개변수 값이 (1,1)인 재귀함수에 한 번 접했더라도, 이 값을 저장하지 않으면 다른 경우에 또 (1,1)을 접하면 또 들어오게 된다. 하지만, 메모이제이션을 이용하면 (1,1)을 접했을 때 이 값을 저장하게 되어서 다음에 또 접하게 될때 ..
[백준][C++] 9663: N-Queen https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net - 문제 N * N 크기의 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓을 수 있는 방법의 수를 구하는 문제다. - 해설 queen까지는 만들었는데, check을 할때 대각선을 어떻게 해야 할 지 생각을 못해서 check는 다른 사람꺼를 조금 참고했습니다. y의 차이가 x의 차이랑 같으면 대각선이다 라는걸 생각 못해서 for문 두개 돌려서 찾고 있었네요. - 풀이 #include using namespace s..
[백준][C++] 15652 : N과 M (4) https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net - 문제 1부터 N까지 자연수 중에서 조건을 만족하는 M개를 고르는 수열을 찾는 문제다. - 해설 N과 M (2)에서 visitied를 빼면 이 문제가 나온다고 볼 수 있다. - 풀이 #include using namespace std; int N, M; int arr[10] = { 0, }; void dfs(int cnt, int now) { if (cnt == M) { for (int i =..
프로그래머스 카펫 C++ 프로그래머스 : 카펫 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 문제 카펫이 주어지면 카펫의 x,y 크기를 구하는 문제다. - 풀이 #include #include using namespace std; vector solution(int brown, int yellow) { vector answer; int all = brown + yellow; for(int i = 3; i < 2000; i++){ for(int j = 3; i * j

반응형