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
- Algorithm
- 메모리 배리어
- 백트래킹
- 멀티스레드
- 문자열&연산자
- 제로베이스
- 서버
- 제로베이스 프론트엔드 스쿨
- c#
- 프론트엔드 스쿨
- 코딩테스트
- Server
- BFS
- JavaScript
- React
- N과 M(2)
- leetcode
- C++
- 코딩테스트 스터디
- dfs
- socket
- 자바스크립트
- 완전탐색
- 프로그래머스
- 알고리즘
- 구현
- MemoryBarrier
- map
- 백준
- 구조체
Archives
- Today
- Total
Written
프로그래머스 레벨2 <n진수 게임> C++ 풀이 본문
https://school.programmers.co.kr/learn/courses/30/lessons/17687
십진수의 수를 N진수로 변환하는 것이 핵심.
우리가 흔히 십진수를 이진수로 변환할때, 나누기를 하면서 몫이 0이 될때까지 나온 나머지들을 쭈욱 이어 모아 붙이는 방법을 사용한다. N진수 역시 똑같다. 하나의 특징은 십진수 이상부터는 A,B,C,D,E,F를 사용하여 십육진수까지 만든다는 것.이런 진법 변환 문제가 처음이면 다소 어려울 수 있지만, 종종 풀게되기 때문에 알아두어야하고 풀다보면 익숙해진다!
1. A,B,C,D,E,F같은 알파벳은 int형이 아니기 때문에 나머지를 받기 위한 arr 배열 생성.
2. 0부터 시작해서 사람수*단어갯수까지 진법을 변환해 만들어두자.
3. 변환해주는 함수 Invert에서 temp에 나머지를 몫이 0이될때 까지 받고 뒤집어주자(뒤집기 까지 해야 완전한 변환)
4. 변환된 수를 다 모아서 하나의 string에 더해주고, 내 차례부터 시작해서 m씩 건너뛰면서 나오는 값들을 반환할 정답 string에 더해준다.
5. 정답 string의 length가 t와 같아지면 종료.
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
44
45
|
#include <string>
#include <vector>
using namespace std;
char arr[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
string Invert(int tmp,int n)
{
string temp = "";
while(tmp != 0)
{
temp += arr[tmp%n];
tmp = tmp/n;
}
if (temp == "")
temp ="0";
string res = "";
for (int i=temp.length()-1;i>=0;i--)
{
res += temp[i];
}
return res;
}
string solution(int n, int t, int m, int p) {
string answer = "";
for (int i=0;i<m*t;i++)
{
answer += Invert(i,n);
}
string res="";
for (int i=p-1;i<answer.length();i+=m)
{
res += answer[i];
if (res.length() == t)
break;
}
return res;
}
|
cs |
'알고리즘 문제풀이' 카테고리의 다른 글
백준 16234 <인구 이동> C++ 풀이 (0) | 2023.10.11 |
---|---|
백준 1916 <최소비용 구하기> C++ 풀이 (1) | 2023.10.10 |
프로그래머스 레벨2 <구명보트> C++ 풀이 (1) | 2023.10.03 |
프로그래머스 레벨2 <오픈채팅방> C++ 풀이 (0) | 2023.09.28 |
프로그래머스 레벨2 <방문 길이> C++ 풀이 (0) | 2023.09.26 |
Comments