본문 바로가기

728x90

Algorithm

[백준알고리즘] 1007번: 벡터 매칭 -C++ [백준알고리즘] 1007번: 벡터 매칭 -C++ 1007번: 벡터 매칭 (acmicpc.net) 1007번: 벡터 매칭 평면 상에 N개의 점이 찍혀있고, 그 점을 집합 P라고 하자. 집합 P의 벡터 매칭은 벡터의 집합인데, 모든 벡터는 집합 P의 한 점에서 시작해서, 또 다른 점에서 끝나는 벡터의 집합이다. 또, P에 속 www.acmicpc.net 문제를 이해하는데 어려움이 있었다. 정확히 무엇이 P이고 벡터 매칭은 무엇이며 벡터의 집합에 대한 설명, V에 대한 설명 등등 처음 봤을 때 이해하기 어려운 내용들이었다. 결국 이 부분들은 다른 질문 게시판의 글이나 다른 블로그의 글을 통해 이해하고 문제를 풀었다. 잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다 문제 이해 먼저, 문제를 이해한 내용에 대.. 더보기
[백준알고리즘] 1005번: ACM Craft -C++ [백준알고리즘] 1005번: ACM Craft -C++ 1005번: ACM Craft (acmicpc.net) 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N 과 건물간의 건설순서규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 먼저, 아래의 코드는 비효율적으로 짰다. 아래 코드량만 봐도 왜 이리 긴가 싶을 건데.. 입력의 마지막 조건인 '승리하기 위해 건설해야 할 건물의 번호가 주어진다'는 사실을 몰랐다. 그래서 모든 건물의 건설 시간을 구하는 방안으로 구했다가... 그렇게 작성했던 코드에서 조금 수정하는 방안으로 코드를 작성하다 보니 비효율적으로 됐다. 어제 새벽에 풀.. 더보기
[백준알고리즘] 1004번: 어린 왕자 -C++ [백준알고리즘] 1004번: 어린 왕자 -C++ 1004번: 어린 왕자 (acmicpc.net) 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 문제에서 서로 다른 두 원이 닿거나 겹칠 수 없다는 조건 덕분에 쉽게 풀 수 있는 문제다. 잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다 우선, 각 테스트케이스마다 어린 왕자의 시작 위치와 도착 위치를 받는다. 여기서 움직일 수 있는 방향은 자유자재이기 때문에 실제로 이동하면서 원을 얼마나 지날 수 있는지 세는 것은 불가능하다. 따라서 시작 위치에.. 더보기
[백준알고리즘] 10757번: 큰 수 A+B -C++ [백준알고리즘] 10757번: 큰 수 A+B -C++ 10757번: 큰 수 A+B (acmicpc.net) 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 이번 문제는 숫자를 읽을 수 없는 범위에서 연산까지 하는 문제다. 예전에 파이썬으로 소수점 아래를 연산할 때 경험해본 적 있는 타입의 문제였다.. 그때는 문제를 결국 풀었는지 어쨌는지 기억이 나지는 않지만.. 그때의 기억 덕분에 문제를 쉽게 풀었다. 잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다 사실 이렇게 큰 숫자를 int, double과 같은 type으로 입력받을 수는 없다. 또는 연산을 통해서 나온 값을 저장할 수도 없다. 한 가지 입력받을 수 있는 경우는.. 더보기
[백준알고리즘] 10799번: 쇠막대기 -Python, C++ [백준알고리즘] 10799번: 쇠막대기 -Python, C++ 10799번: 쇠막대기 (acmicpc.net) 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다 예전에 파이썬으로 풀었다가 쉬웠어서 안올렸던 문제다. 그런데.. 오늘 C++로 풀면서 완전 대참사였다. 계속 '틀렸습니다'가 떠서 이전에 파이썬으로 푼 코드를 봤는데 로직이 같은 개념으로 짠 것인데도 해결이 안 됐다. 이래저래 모두 안되길래 아예 파이썬으로 짰던 로직 그대로 짰는데도 안됐다. 그래서 오늘 C++로 .. 더보기
[백준알고리즘] 1009번: 분산처리 -C++ [백준알고리즘] 1009번: 분산처리 -C++ 1009번: 분산처리 (acmicpc.net) 1009번: 분산처리 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000) www.acmicpc.net 모듈로 연산을 해주었다. 모듈로(\(\%\))란 나머지라고 생각하면 된다. 모듈로 연산을 사용해준 이유는, 컴퓨터가 \(10\) 대면서 하나씩 일을 순차적으로 맡아가기 때문에 적합하다고 생각했다. 예를 들어서, \(11\)개의 데이터가 주어진다면 마지막 데이터를 처리하는 컴퓨터는 \(11\%10 = 1\) 번 컴퓨터가 될 것이다. 또한 \(26\) 개의 데이터가 주어진다면 마지막 .. 더보기
[백준알고리즘] 10814번: 나이순 정렬 -C++ [백준알고리즘] 10814번: 나이순 정렬 -C++ 10814번: 나이순 정렬 (acmicpc.net) 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net '1181번 단어 정렬'과 마찬가지로 두 가지 값을 동시에 비교해야 한다. 1181번 문제에 대한 풀이는 아래 링크에 있다. [백준알고리즘] 1181번: 단어 정렬 -C++ (tistory.com) [백준알고리즘] 1181번: 단어 정렬 -C++ [백준알고리즘] 1181번: 단어 정렬 -C++ 1181번: 단어 정렬 (acmicpc.net) 1181번: 단어 정렬 첫.. 더보기
[백준알고리즘] 1181번: 단어 정렬 -C++ [백준알고리즘] 1181번: 단어 정렬 -C++ 1181번: 단어 정렬 (acmicpc.net) 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 입력으로 \(n\)개의 단어들이 들어올 때 세 가지 조건에 맞춰서 입력된 단어들을 출력하면 된다. 단어들 중 단어의 길이가 짧은 것부터 긴 것까지, 단어의 길이의 오름차순 단어의 길이가 같다면, 사전 순 (단어의 오름차순) 중복된 입력의 단어는 삭제 메모리와 시간 조건이 넉넉하니 정렬이야 sort를 사용해서 해주었다. 여기서 직접 비교 함수를 만들어서 넣어.. 더보기

728x90