Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- BFS
- DP
- 동적 계획법
- BOJ
- 잠실
- 그리디
- koitp
- PS
- 스택
- 해커랭크
- 다이나믹 프로그래밍
- dfs
- 백준
- 에라토스테네스의 체
- sw expert academy
- C++
- 삼성 SDS 대학생 알고리즘 특강
- hackerrank
- 맛집
- 알고리즘
- 백트래킹
- 완전탐색
- 시뮬레이션
- 삼성 기출
- dynamic programming
- 구현
- SWEA
- 소수
- Algorithm
- 브루트포스
Archives
- Today
- Total
펭로그
[C++] 백준 BOJ 1475 방 번호 본문
문제링크 : https://noj.am/1475
문자열을 입력 받아서 갯수를 카운팅 하고 그 중에서 가장 많이 카운팅 된 숫자가 몇개인 지를 구하는 문제이다.
단, 문제의 조건에서 6과 9는 뒤집어서 사용할 수도 있다고 했기 때문에 0.5씩 카운팅하여 쉽게 해결하였다.
이러한 과정을 위해서 float형을 사용하였다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | // BOJ_1475 방 번호 #include <iostream> #include <string> using namespace std; int max(int a, int b){ return a > b ? a : b; } int round(float input){ float temp = (int)input; return input != temp ? input + 1 : input; } int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); string room_number; cin >> room_number; // 0~8까지 float cnt[9] = {0.0, }; for(auto i : room_number){ int num = i - '0'; // 6이나 9일 경우는 0.5만 카운트 if(num == 6 || num == 9){ cnt[6] += 0.5; continue; } cnt[num]++; } int result = 0; for(auto i : cnt) result = max(result, round(i)); cout << result; return 0; } | cs |
'Study > PS(Algorithm)' 카테고리의 다른 글
[C++] 프로그래머스 코딩테스트 연습 - 완주하지 못한 선수 (0) | 2019.01.29 |
---|---|
[C++] 프로그래머스 코딩테스트 연습 - 전화번호 목록 (0) | 2019.01.29 |
[C++] 백준 BOJ 1018 체스판 다시 칠하기 (0) | 2019.01.16 |
[C++] 백준 BOJ 5566 주사위 게임 (0) | 2019.01.14 |
[C++] 백준 BOJ 1120 문자열 (0) | 2019.01.14 |
Comments