코딩테스트
[프로그래머스] 자연수를 뒤집어 배열로 만들기, 문자열 다루기 기본
코딩너구리
2024. 3. 19. 14:36
자연수를 뒤집어 배열로 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/12932
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요.
예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
제한 조건
n은 10,000,000,000이하인 자연수입니다.
자릿수 찾는 로직을 그래로 적용하면 풀기 쉬운 문제다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(long long n) {
vector<int> answer;
while(n!=0)
{
answer.push_back(n%10);
n/=10;
}
return answer;
}
문자열 다루기 기본
https://school.programmers.co.kr/learn/courses/30/lessons/12918
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요.
예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
문자열s의 길이가 4혹은 6인지 검사를 하고, 숫자로만 구성되어 있는지 검사를 진행한다.
#include <string>
#include <vector>
#include <cstring>
using namespace std;
bool solution(string s) {
char c[s.length()];
strcpy(c, s.c_str());
if(s.length()!=4&&s.length()!=6)
{
return false;
}
for(int i = 0; i <s.length();i++)
{
if(isdigit(c[i])==0)
{
return false;
}
}
return true;
}
핵심 함수는 strcpy()와 isdigit()이다. strcpy()는 string을 char로 복사해줄 수 있는 함수이고, char로 변환해야 하는 이유는 문자열을 검사할때 char 배열로 검사해야 편하기 때문이다. isdigit()은 해당 값이 알파벳인지 숫자인지 구별해주는 함수이다. 알파벳이라면 0을 반환한다.
출처 : 프로그래머스 lv.1