[프로그래머스 C++] [3차] n진수 게임
[프로그래머스 C++] [3차] n진수 게임
https://school.programmers.co.kr/learn/courses/30/lessons/17687
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해결전략
문자열
진법 변환 (2진수, 16진수 변환)
코드
#include <string> #include <vector> using namespace std; // n: 진법, t: 미리 구할 숫자의 갯수(튜브가 말해야 하는 숫자의 개수), m: 게임 참가 인원, p: 튜브의 순서 string Convert(int k, int n) // k: 주어진 숫자, n: 진법 { if (k == 0) return "0"; if (n == 10) return to_string(k); string tmp; while (k > 0) { string newNum; // 진법 계산 후 나머지 값 if (k % n < 10) // 나머지가 10보다 작으면 newNum = to_string(k % n); else{ // 나머지가 10 이상이면 newNum = 'A' + (k % n - 10); } tmp = newNum + tmp; k /= n; } return tmp; } string solution(int n, int t, int m, int p) { string answer = ""; string s; for(int i=0; i<t*m; i++) //t*m (튜브 말해야 하는 숫자의 개수 * 참가 인원) { s = s + Convert(i, n); // 등장할 수 나열하여 문자열에 저장 } for(int i = 1; i <= s.size(); i++) { if(i % m == p) // 튜브의 순서 answer += s[i-1]; else if (i % m == 0 && m == p) // 튜브의 순서, 마지막 순서인 경우 나머지가 0이므로 answer += s[i - 1]; if (answer.size() == t) // t번 말할 수 answer에 담으면 break break; } return answer; }
'⭐ 코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 C++] 뒤에 있는 큰 수 찾기 (0) | 2023.10.10 |
---|---|
[프로그래머스 C++] 인사고과 (0) | 2023.10.09 |
[프로그래머스 C++] 게임 맵 최단거리 (0) | 2023.10.07 |
[프로그래머스 C++] 주차 요금 계산 (0) | 2023.10.06 |
[프로그래머스 C++] 길 찾기 게임 (0) | 2023.10.04 |
댓글
이 글 공유하기
다른 글
-
[프로그래머스 C++] 뒤에 있는 큰 수 찾기
[프로그래머스 C++] 뒤에 있는 큰 수 찾기
2023.10.10 -
[프로그래머스 C++] 인사고과
[프로그래머스 C++] 인사고과
2023.10.09 -
[프로그래머스 C++] 게임 맵 최단거리
[프로그래머스 C++] 게임 맵 최단거리
2023.10.07 -
[프로그래머스 C++] 주차 요금 계산
[프로그래머스 C++] 주차 요금 계산
2023.10.06
댓글을 사용할 수 없습니다.