본문 바로가기

Algorithm/BaekJoon

(18)
[11723] 집합 구분 비트마스킹 구현 문제 풀이 풀이는 딱히 없다. 3가지 방법이 존재한다. 그저 구현.. 출력이 1또는 0 이기 때문에 true/false 로 구분되도록 하는 문제였다. 답 보고 알았다 ㅎ bool배열 비트마스킹 set 이용 (별로임) 비트마스킹에 대하여 2021.09.23 - [LANGUAGE/C C++] - [C/C++] 비트마스크(BitMask) [C/C++] 비트마스크(BitMask) 비트(bit) 비트는 이진수(binary digit)로, 컴퓨터에서 사용되는 데이터의 최소 단위이다. 0 / 1 두 개의 값만을 가질 수 있으며, 이 두가지로 숫자를 표현하는 방법을 이진법이라고 한다. 비트 마스크 iagreebut.tistory.com 여기에 있는 내용을 응용하면 1부터 20까지 이기 때문에 00..
[11000] 강의실 배정 분류 그리디 우선순위 큐 정렬 https://www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 문제 풀이 [주요 로직] 이미 배치된 수업들(m개)의 끝나는 시간 ≤ 지금 배치하려는 수업의 시작시간(1개) true ) 이미 있는 교실중 하나에 배치 가능 false ) 새로운 교실이 필요함 (교실수 ++) 이제 이걸 총 수업의 갯수(n개)만큼 반복해야한다. [고려사항] 문제는 이를 얼마나 효율적으로 하느냐다. 생각해보자, 이미 배치된 수업 m개를 전부 검사해볼 필요는 없다. "배치된 수업 m개의 끝나는 시간 중..
[3613] Java vs C++ - Priority Queue에 string넣으면 https://www.acmicpc.net/problem/3613 3613번: Java vs C++ Java 예찬론자 김동규와 C++ 옹호가 김동혁은 서로 어떤 프로그래밍 언어가 최고인지 몇 시간동안 토론을 하곤 했다. 동규는 Java가 명확하고 에러가 적은 프로그램을 만든다고 주장했고, 동혁이는 www.acmicpc.net Priority Queue에 스트링을 넣으면 어떻게 되는가 넣어봤다 default로 내림차순이다(제일 큰 수가 root) #include #include using namespace std; priority_queue pq; int main() { string var; cin >> var; for (int i = 0; i < var.length(); i++) { pq.push(var..
[2869] 달팽이는 올라가고 싶다 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 문제 풀이 코드 /* * 백준 - 단계별 문제풀이 : 기본수학1 * 2869번 * * 달팽이는 올라가고 싶다. * 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. * 달팽이는 낮에 A미터 올라갈 수 있다. * 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. * 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. * */ #include #i..
[1193] 분수찾기 https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 문제 문제를 잘 못 읽었다 ! 지그제그 인 줄.... 풀이 코드 /* * 백준 - 단계별 문제풀이 : 기본수학1 * 1193번 * * 분수찾기 * 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 * 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. * X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. * */ #include using namespace std; void solution(int x) { int m; int n = 1; int..
[2292] 벌집 https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 문제 풀이방법 코드 /* * 백준 - 단계별 문제풀이 : 기본수학1 * 2292번 * * 벌집 * 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. * 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. * 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 * 갈 때 몇 개의 방을 지나가는지(시작과 끝을..
[15552] 빠른 A+B - ios_base::sync_with_stdio(false)와 cin.tie(null) https://www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 문제 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getcha..
[2741]N 찍기 - "\n" vs endl https://www.acmicpc.net/problem/2741 2741번: N 찍기 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net /* * 백준 - 단계별 문제풀이 : for문 * 2741번 * * N 찍기 * 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. * */ #include using namespace std; int main() { int n; cin >> n; for (int i = 1; i

728x90