본문 바로가기

코딩 테스트/백준4

[C++][백준][정렬]2751 - 수 정렬하기 2 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 이 문제의 함정은 로직보다, C++에서 제공하는 기능을 생각없이 사용 했을때 빠지기 쉽다. 예제코드 두개를 준비하였다. 예제코드 1 #include #include #include int main() { std::ios::sync_with_stdio(false); std::cin.tie(0); std::cout.tie(0); int total_no; std::cin >> total_no.. 2023. 3. 6.
[백준][c++]14500-테트로미노 https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 백준의 실버5 문제 "4920-테트리스 게임" 과 매우 유사하다. 차이점은 이 문제에서는 주어진 테트로미노를 회전뿐만 아니라 대칭도 시켜도 된다는 점이다. 인풋으로 주어진 숫자를 2차원 배열에 넣어주고, 순차적으로 순회를 하며 대응 가능한 모든 테트로미노를 대입해보면 쉽게 정답을 얻을 수 있다. 풀이 자체는 단순하지만, 테트로미노를 잘못 찍으면 디버깅하기가 어려우므로 신중하게 해야 한다. 각 도형.. 2022. 6. 12.
[백준][C++]11399-ATM https://www.acmicpc.net/problem/11399 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라진다고 한다. 예시에서도, 인출 하는데 소요되는 시간이 가장 적은 2번 사람이 먼저 돈을 인출하고, 차례로 5번,1번,4번 그리고 마지막으로 3번사람이 돈을 인출 할 때 시간의 합의 최솟값을 얻을 수 있다고 한다. 그렇다면, 둘째 줄에 주어진 시간 데이터를를 오름차순으로 정렬한다면 간단하게 원하는 순열을 얻을 수 있다. #include #include #include #include using namespace std; int main() { int n, a; std::vector data; std::vector sum_data; cin >> n; //데이터 입력.. 2022. 5. 27.
[백준][C++]1158-요세푸스 문제 0 자료구조의 이해도를 묻는 문제이다. STL에서 제공하는 queue 를 사용하면 쉽게 풀 수 있다. 주어진 1번부터 N명까지의 사람들을 큐에 집어넣고, 큐가 완전히 empty가 될때까지 계속 사람을 제거하는 작업을 수행해 준다. #include #include using namespace std; int main() { int k,n; cin >> n >> k; queue q; for(int i = 1; i 2022. 5. 27.