목록1단계 (38)
N
long long형의 정수 n을 내림차순으로 배치해야 한다. 우선 각 자릿수를 구하여 v 벡터에 저장을 해준다. 이때 v벡터는 long long 형이 아니어도 된다..! 1자리 수를 저장하면 되기 때문..! while문을 통해 각 자릿수를 구하면 sort함수를 통해 오름차순으로 정렬을 한다. 그 후 for문으로 10의 i 승 * v[i]를 해주면 된다..! 예시를 들자면 1) 118372를 while문을 통하여 1 1 8 3 7 2로 v 벡터에 저장을 한다. 2) sort함수를 통해 1 1 2 3 7 8 로 정렬을 한다. 3) i = 0일 때, 10의 0승 * v[0] = 1 * 1 i = 1일 때, 10의 1승 * v[1] = 10 * 1 i = 2일 때, 10의 2승 * v[2] = 100 * 2 ...
자릿수 더하기 문제와 똑같은 유형이다..! while문으로 n이 0보다 작아질 때까지 반복한다. answer가 벡터이므로 push_back을 통해 값을 넣어주고, 나머지 연산을 이용하면 n을 뒤집어서 넣을 수 있다..! #include #include using namespace std; vector solution(long long n) { vector answer; while(n > 0) { answer.push_back(n % 10); n /= 10; } return answer; }
각 자릿수의 합을 구하는 문제..! while문으로 n이 0보다 클 때까지 돌고, n을 10으로 나눴을 때 나머지 값을 answer에 계속 더해준다. 그 후 n을 10으로 나누고 이 값을 n에 저장하면 각 자릿수를 구할 수 있다. #include using namespace std; int solution(int n) { int answer = 0; while(n > 0) { answer += n % 10; n /= 10; } return answer; }
단어 별 인덱스의 따라 대소문자로 변환하는 문제..! 대문자로 변환해주는 toupper()함수와 소문자로 변환해주는 tolower()함수를 이용하면 쉽게 풀 수 있다. 또한 단어마다 0번째 인덱스부터 시작하니 이것만 처리해주면 풀 수 있는 문제..! count 변수를 이용하여 단어의 인덱스 위치를 체크해주고, 띄어쓰기가 나오면 count를 0으로 초기화하여 새로운 단어의 인덱스부터 시작한다..! #include #include using namespace std; string solution(string s) { string answer = ""; int count = 0; for(int i = 0; i < s.size(); i++) { if(s[i] == ' ') { count = 0; answer.p..
알파벳 문자열을 다루는 문제..! 대소문자를 구분하기 때문에 따로 처리를 해줘야 한다. 또한 해당 알파벳 + n이 'z'나 'Z'를 넘어가게 되면 'a'나 'A'부터 시작해서 나머지 수만큼 밀어주면 된다..! 본인은 나머지 연산을 이용하여 알파벳을 밀어주었다. 나머지 연산을 이용하면 대소문자 구분만 해주면 되기 때문에 간단하게 풀 수 있다..! #include #include #include using namespace std; string solution(string s, int n) { string answer = ""; for(int i = 0; i = 'a' && s[i]
문자열을 정수로 바꾸는 간단한 문제..! atoi 함수를 사용하였는데, 이 함수는 다른 알고리즘 문제에서도 많이 쓰이는 함수라서 외우는 게 좋을 것 같다..! atoi와 c_str()에 관해 설명이 잘 돼있는 블로그가 있으니 참고하면 되겠다..! https://blockdmask.tistory.com/39 [C++] string 클래스 변환(atoi, c_str()) 등 정리 C++에서 string, char *, int 간의 변환에 대해서 알아보겠습니다. (char* -> int 로 바꾸는 것을 보고싶다면, [바로가기]) (string -> int 로 바꾸는 것을 보고싶다면, [바로가기]) (int -> string 으로 바로 바.. blockdmask.tistory.com #include #inclu..
1부터 n까지 for문을 돌면서 홀수번째는 "수"를 붙이고 짝수번째는 "박"을 answer에 붙이면 끄으읏! 간단간단..! #include #include using namespace std; string solution(int n) { string answer = ""; for(int i = 1; i
소수 찾는 기본적인 문제..! 종종 알고리즘 문제를 풀다보면 나오는 것 같다..! 그래서 풀이 형태를 외워두는 게 나을 것 같다..! 전역 변수로 1000001 크기의 bool 형태 배열을 선언해준다. 2부터 n까지 for문을 돌면서 prime[i]가 false이면 소수이고, 소수의 배수는 소수가 아니기 때문에 true로 바꿔준다. '에라토스테네스의 체' 알고리즘을 사용했다. https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4 에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 수학에서 에..