본문 바로가기

분류 전체보기166

[Baekjoon] 18258번: 큐 2 https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 해결 과정 착안 큐(queue) 자료구조를 구현하는 문제이므로 STL에 구현되어있는 라이브러리를 이용하지 않고 문제에서 주어진 조건을 만족하는 형태의 큐 클래스 queue를 작성하되, 이때 큐 클래스가 가질 수 있는 최대 크기(capacity)가 주어지지 않았기 때문에 환형 큐의 형태로는 구현하기 어려울 것이라 판단하여 선형 큐 형태로 구현하였다. 구현 문제에서 pu.. 2023. 5. 7.
[Baekjoon] 9012번: 괄호 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 이 문제를 보자마자 스택(stack) 자료 구조가 떠올랐다면, 당신은 프로그래밍 에이스 ! (언제나 그렇듯 헛소리에 대해서는 반박 시 당신의 말이 항상 옳습니다) 문제 해결 과정 착안 문제를 보자마자 프로그래밍 에이스가 되기 위해서 스택이라는 자료구조를 떠올렸는데, 조금 더 고찰해본 결과로는 굳이 스택 자료구조 자체를 이용하지 않더라도 스택 자료구조가 구현되는 원리만.. 2023. 5. 6.
[Baekjoon] 1002번: 터렛 https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 고등학생 시절 어느 한 수학 선생님께서 우리 학생들에게 이렇게 말씀을 해주신 것이 기억난다. 어쩌면 우리 고등학교에서 뿐만 아니라 전국의 학생들은 한 번쯤 들어본 말일 수도 있을 것 같다. '수학을 잘하는 사람들은 주어진 문제를 간단하게 만들어서 푸는 것을 잘 하는 사람들이야.' 문장 자체로만 보면 정말 너무나도 당연한 명제에 따른 자명한 결론이라서 할 말이 없을 것이다. 문제를 간단하게 만들 수 있으면 당연히 간단한 문제로 푸는 게 더 쉬울 테니까.. 2023. 5. 6.
[Baekjoon] 2485번: 가로수 https://www.acmicpc.net/problem/2485 2485번: 가로수 첫째 줄에는 이미 심어져 있는 가로수의 수를 나타내는 하나의 정수 N이 주어진다(3 ≤ N ≤ 100,000). 둘째 줄부터 N개의 줄에는 각 줄마다 심어져 있는 가로수의 위치가 양의 정수로 주어지며, 가 www.acmicpc.net 최대공약수의 개념을 활용하는 문제인데, 단순히 최대공약수를 구하라고 한다면 모두 빠르게 프로그래밍으로 구현할 수 있지만 이렇게 서술형 문제로 나오면 왠지 모르게 어떤 방법으로 풀어야할 지 헷갈리는 것 같다. 문제 해결 과정 착안 가로수의 간격이 등간격이 되도록 새로운 가로수를 심는 과정은 주어진 간격을 등분하는 것과 같으므로, 각 간격들 사이의 공약수(common divisor)만큼 등분하.. 2023. 5. 6.
[Baekjoon] 1735번: 분수 합 https://www.acmicpc.net/problem/1735 1735번: 분수 합 첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다. www.acmicpc.net 문제 해결 과정 착안 분모가 다른 두 분수 \(A, B\)의 계산을 위해 두 수를 통분(reduction to common denominator, 영어로는 별도로 통분을 나타내는 하나의 용어가 존재하지 않는다)하여 계산하고, 기약분수(irreducible fraction)로 나타내기 위해 최종 계산된 분자와 분모 사이의 최대공약수(greatest common divisor, GCD)를 구해 분자와 분모를 약분(reduction of a fractio.. 2023. 5. 6.
[Baekjoon] 1934번: 최소공배수 https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 관련 개념을 고등학교 1학년 과정에서 아마 배웠던 것으로 기억하는데, 요새 수학 교육과정은 어떻게 되는지 잘 모르겠다. 본인은 이 개념을 처음 배웠을 때 도대체 왜 이렇게 최대공약수를 구해야하는가에 대한 의문이 풀리지 않았었는데 대학교를 입학해서 수치해석 과목 시간에 이를 revisiting 하면서 이 알고리즘이 왜 필요한지를 깨달았던 기억이 있다. 나는 여태 살아오면서 수학을.. 2023. 5. 6.