본문 바로가기

Problem solving70

[구름톤 챌린지] 운동 중독 플레이어 (C++) 문제 근력 운동을 할 때, 1회에 최대한으로 들 수 있는 무게 1RM 한 세트에서 들어올린 무게 W와 반복 횟수 R이 주어졌을 때 1RM을 소수점 이하의 값을 버린 뒤 출력하기 생각할 것 이 문제는 연산 시에는 소숫점까지 정확히 계산하고 출력할 때만 소숫점을 버려야하는 것이 핵심인 것 같다! 만약 W, R을 정수로 선언하고 위의 식을 계산한다면, W = 100, R = 10을 입력했을 때 R / 30 의 결과가 0이 되어 100이 출력될 것이다. 이 점을 유의하면서 연산 시 필요한 변수를 실수로 선언한 다음 소숫점을 버리자. 코드 #include using namespace std; int main() { double W, R, res; cin >> W >> R; res = W * (1 + R / 30).. 2023. 8. 14.
[BOJ] 7785. 회사에 있는 사람 (C++) 문제 모든 사람의 출입카드 시스템 로그를 가지고 있을 때, 현재 회사에 있는 모든 사람을 사진 순의 역순으로 출력 입력은 이름 뒤에 "enter"나 "leave"가 주어진다. "enter"인 경우는 출근, "leave"인 경우는 퇴근이다. 생각할 것 map을 사용하기 map은 디폴트가 key를 기준으로 오름차순 정렬한다. 내림차순으로 정렬하려면 map 으로 선언한다. 구현 key가 존재할때 leave이면 값 지우기 코드 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N; cin >> N; string name, type; map m; fo.. 2023. 8. 11.
[BOJ] 1920. 수 찾기 (C++) 문제 N개의 정수 배열이 주어지고, M개의 수들이 주어진다. 이 수들이 N개 안에 존재하면 1, 존재하지 않으면 0출력 생각할 것 unordered_map은 탐색에 O(1)의 시간복잡도가 소요되므로 unoredered_map으로 찾아보려한다. 배열 인덱스를 사용함과 다르게 key값으로 정수 범위를 넣어도 된다. 코드 #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N, M, n; cin >> N; unordered_map m; for (int i = 0; i > n; m[n] = true; } cin >> M; for (int.. 2023. 8. 11.
[BOJ] 2230. 수 고르기 (C++) 문제 N개의 정수로 이루어진 수열 중 두 수를 골랐을 때(같은 수일 수도 있음) 차이가 M이상이면서 제일 작은 경우를 구하기 생각할 것 배열을 정렬하고, 투포인터를 이용해보기 start, end를 가장 처음에 둔다. (같은 수일 수도 있으므로) 차이가 M보다 작으면 키우기 위해 end를 옮기고, 크면 start를 옮긴다. res의 초기 값을 res[N-1] - res[0]으로 설정해야한다. 코드 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N, M; cin >> N >> M; vector vec(N); for (int i = 0; i <.. 2023. 8. 11.