본문 바로가기

Algorithm

(68)
[20055] 컨베이어 벨트 위의 로봇 분류 구현 시뮬레이션 문제 https://www.acmicpc.net/problem/20055 풀이 저 1,2,3,4번을 순서대로 하기만하면된다. 근데, 특히 회전을 직접 한칸씩 옮겨서 구현하는 것은 매우 비효율적(코드1번)이기 때문에 포인터를 사용(코드2번)해야한다. (코드 1번) ( 회전을 인덱스로 구현하는 것 까지는 알겠는데, 로봇배열이랑 내구성배열을 따로따로하려니 헷갈림 ) 포인트는 1. 구조체로 해당 인덱스에 로봇의 여부 / 내구성을 저장하게 구현하는 것이고, 2. 인덱스 포인터를 사용하기 배열을 이동시키나, 포인터만 앞으로(--pos) 이동시키나 같다. (이때 회전벨트이므로, 원형 큐처럼 구현해야한다. 하지만 원형 큐는 pos++였던 점에서 코드가 약간 다름) 3. STEP2 : 가장 먼저 벨..
[20302] 민트초코 🙃 : 대충 다시 시도해야한다는 뜻 분류 수학 정수론 소수 판정 에라토스테네스의 체 문제 풀이 입력으로 받은 수의 절댓값을 전부 소인수 분해하여, * 이면, 소인수 분해되는 소인수의 지수를 +1 / 이면, 소인수 분해되는 소인수의 지수를 -1 지수가 음수인 소인수가 하나라도 존재하면 유리수 주의) 0이 곱해지는 순간 바로 정수 부호는 상관 없음 코드 // // 민트 초코 // /* * 입력으로 받은 수의 절댓값을 전부 소인수 분해하여, * 이면, 소인수 분해되는 소인수의 지수를 +1 / 이면, 소인수 분해되는 소인수의 지수를 -1 * 지수가 음수인 소인수가 하나라도 존재하면 유리수 * * */ #include #include using namespace std; const int SIZE = 100000..
[2841] 외계인의 기타 연주 구분 자료구조 스택 문제 https://www.acmicpc.net/problem/2841 2841번: 외계인의 기타 연주 첫째 줄에 멜로디에 포함되어 있는 음의 수 N과 한 줄에 있는 프렛의 수 P가 주어진다. (N ≤ 500,000, 2 ≤ P ≤ 300,000) 다음 N개 줄에는 멜로디의 한 음을 나타내는 두 정수가 주어진다. 첫 번째 정수 www.acmicpc.net 풀이 1. 서로 다른 줄 끼리는 영향이 가지 않는다 -> 각 line별 fret을 스택으로 나누어 분리한다. 2. 기타는 줄이 6번 까지 존재 -> vector guitar(7) ; // 0번라인은 쓰지않음 now : 지금 연주하려는 음 stack : 해당 라인 스택에 존재하는 프랫 now == stack : 아무것도 안함 now >..
[2493] 탑 분류 스택 문제 풀이 자신과 가까운 것부터 순차적으로 비교해봐야하므로 스택이 필요함을 알 수 있다. 모든 타워에 대해 조사해보아야 하므로 타워의 갯수 n개만큼 반복문을 돌아야 한다. 방법에는 2가지가 있는데, for문에서 i=0부터 n까지 앞부터 실행하는 것과, i=n부터 0까지 뒤에서부터 실행하는 방법이 있다. 앞부터 실행하는 방법은, 이미 어떤 타워가 자신의 신호를 송신할지 결정된 타워들을 스택에 넣어두고, 결정을 해야하는 타워와 스택을 하나씩 비교해서, 현재 타워보다 높이가 낮으면 pop해간다. 1 ) 스택이 비어버리면, 자신 이전에 자신보다 큰 타워가 없어서 아무도 자신의 신호를 송신하지 못하므로 0이다 2 ) 자신보다 높은 타워가 발견되면, (스택을 이용해 가까운 순서대로 검사했으므로) 해당 타..
[CodingBat/Java] missingChar 링크 https://codingbat.com/prob/p190570 CodingBat Java Warmup-1 missingChar Given a non-empty string and an int n, return a new string where the char at index n has been removed. The value of n will be a valid index of a char in the original string (i.e. n will be in the range 0..str.length()-1 inclusive).missingChar("kitten", 1) codingbat.com 문제 문자열과 문자열 인덱스가 주어지면, 해당 인덱스의 문자를 제거해서 반환하는 함수를 만들어라...
[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..

728x90