본문 바로가기

개발 노트/백준, 프로그래머스 풀이165

[백준 11399/c++] ATM 총 시간이 최소일때의 시간이 되려면 앞에는 작은 수를, 뒤로 갈수록 큰수를 두어 오름차순 정렬시키면 된다 주어진 시간들을 배열이나 벡터에 넣고(배열이 더 빠르다) sort 로 오름차순 정렬 후 for 문으로 개수를 추가해 돌면서 누적 합을 구해주면 되는 문제였다 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net #include using namespace std; int main(){ int n; int num; int sum = 0; int ar[1004]; cin >> n.. 2022. 7. 29.
[백준 1436/c++] 영화감독 숌 원하는 번째일때의 수이니 번째를 cnt 카운트해서 입력한 n 과 같을때까지 내부의 수 ans를 ++ 하고 ans를 temp로 복사하여 temp의 %1000 일때의 값(1000으로 나눴을때의 나머지)가 666이면 cnt를 ++ 아닐 경우에도 마지막 자리수에 666이 아니라 중간자리수에 666이 있을 수 있으므로 10으로 나누어 한자리씩 내려당겨준어 그걸 다시 666이 있나 비교하여 있으면 cnt++ 없으면 10으로 나누는것을 반복, temp가 나누다가 0이되면 반복 탈출하여 cnt ==n 될때까지 ans 값을 올려주면 되는 문제이다 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이.. 2022. 7. 28.
[백준 5555/c++] 반지 문자열의 특성상 이어붙였을때 특정 문자열이 속해있는지를 확인하려면 그 문자열을 같은 걸로 2번 붙여주면 된다 https://www.acmicpc.net/problem/5555 5555번: 반지 당신은 N개의 반지를 가지고 있다. 각각의 반지는 대문자 10 문자로 이루어진 문자열이 새겨져 있다. 반지는 문자열의 시작과 끝이 연결된 형태로 문자가 새겨져 있다. 반지에 각인된 문자열을 www.acmicpc.net #include using namespace std; int main(){ int num; int cnt = 0; string ori; string s; cin >> ori; cin >> num; for (int i = 0; i > s; s += s; if (s.fi.. 2022. 7. 27.
[백준 1269/c++] 대칭 차집합 처음에 map 을 이용해서 ++ -- 로 카운트 했더니 테스트 케이스에 같은 수가 중복이 있었는지 에러가 떴다 중복일 경우도 차집합에서 한번에 다 사라지게 해야하므로 중복 자체를 없애기 위해 set 에 넣어서 find 로 카운트, 카운트 한 수는 양 집합 모두에 있는 것이므로, 두 집합을 더한 후 카운트x2 로 양쪽에 있는 만큼 빼주면 차집합의 원소 개수 완성이다 https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net #include using .. 2022. 7. 25.