본문 바로가기

반응형

분류 전체보기

(142)
[백준][C++] 2580: 스도쿠 https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net - 문제 스도쿠가 주어지면 빈칸에 들어갈 숫자를 맞추는 문제다. - 해설 혼자서 풀다가 잘 안되어서 내가 자주 참고하는 cryptosalamander라는 블로그의 내용을 참고해봤다. 역시 언제나 그렇듯 코드가 되게 깔끔하게 잘 짜여져 있었다. 나는 스도쿠 판을 9*9 모든 경우를 돌면서 문제를 해결하려고 해서 시간초과가 났지만, 이 분은 비어있는 0인 경우의 좌표를 기억해놔서 해당 경우만 정답을 ..
[백준][C++] 1912: 연속합 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net - 문제 연속적인 수 중에서 가장 큰 값일 때를 구하는 문제다. - 해설 이전의 값이 음수더라도 지금까지 더한 값이 0보다 크면 계속 더해가는게 좋고, 0보다 작으면 새로 시작하는게 낫다는 생각으로 문제를 풀면 된다. - 풀이 #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(N..
[백준][C++] 9461: 파도반 수열 https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net - 문제 피보나치 수열과 비슷한 형태의 문제를 해결하는 문제다. 다만, n-1 + n-2가 아니라 n-2 + n-3이다. - 해설 메모이제이션과 피보나치 수열의 변형을 이용해서 풀면된다. 신경써야 할 점으로는 - 시간 초과 - 자료형 이 있다. 메모이제이션 없이 dfs 느낌으로 풀면 시간초과가 날 수 밖에 없고, 피보나치 수열과 같은 형태의 문제는 n이 100까지만 가더라도 int 자료형으로는 감당할 ..
[백준][C++] 10773: 제로 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net - 문제 스택을 이용해서 숫자를 저장하거나 빼고 스택에 남은 정수를 합치는 문제다. - 해설 stack을 이용해서 풀면 된다. - 풀이 #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int K, temp..
[백준][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분 ..

반응형