목록Programmers (190)
GitHubSeob

문제 https://programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 문제풀이 3진법은 0, 1, 2로만 이루어진 숫자이다. 원래 n을 3으로 나누고 나머지를 적고, n을 더 이상 나눌 수 없을 때까지 반복한 뒤 나머지를 거꾸로 적어야 하지만 이 문제에서는 3진법 된 수를 뒤집어야 하므로 나머지가 나오는 대로 바로 벡터에 push 하면 된다. 앞뒤가 반전된 3진법이 나오게 되면,..

문제 https://programmers.co.kr/learn/courses/30/lessons/77884 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr 문제풀이 수가 제곱수인지 아닌지만 판별하면 된다. 제곱수의 경우는 무조건 약수의 개수가 홀수가 되고, 아닌 경우는 짝수가 된다. 제곱수인지 판별하기 위해 제곱근을 구하는 sqrt함수를 이용한다. double형 제곱근 - int형 제곱근을 해서 0이나 오면 제곱수이므로 그때만 answer -= idx, 이 ..

문제 https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 문제풀이 실패율은 스테이지를 클리어 못한 플레이어의 수 / 스테이지에 도달한 플레이어의 수이다. 여기서 i 스테이지를 클리어 못한 플레이어의 수는 stages벡터에서 i의 개수이고, 스테이지에 도달한 플레이어의 수는 i 스테이지를 지나간 플레이어의 수이다. 1번 스테이지의 경우 stages벡터에 1은 1개이고, 1 이상인 수가 8개이므로 실패율이 1/8이다..

문제 https://programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr 문제풀이 복잡해 보일 수 있는데 간단히 보면 경우의 개수가 아닌 몇 마리의 폰켓몬을 고를 수 있는지만 구하면 된다. 폰켓몬의 최대 개수를 넘으면 최대 개수를 출력하고 그렇지 않으면 폰켓몬의 종류의 개수를 출력하면 된다. 현재 인덱스의 값과 인덱스+1 값을 비교하면서 둘이 같으면 인덱스+1 값을 지운다. 그렇지 않으면 인덱스 값을 1 증가시켜 다음수를 탐색..

문제 https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 문제풀이 문제는 길지만 단계 하나씩 코드를 작성하면 쉽게 풀 수 있다. 먼저 알파벳, 숫자, -, _, . 일 때만 answer벡터에 push 한다. answer의 끝, 끝-1 부분이 . 이라면 끝부분을 지워 .가 하나만 있게 한다. 맨앞이 .이라면 erase를 통해 벡터 맨 앞 원소만 지운다. 맨뒤가 .일때도 마찬가지이다. answer베터가 비어있..

문제 https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 문제풀이 처음에 비트 마스크 문제인 줄 알았는데 다시 보니 서로 다른 숫자 3개를 고르는 문제였다. 따라서 for문을 중첩해서 num1: nums[0]~ num2: nums[1]~ num3: nums[2]~ 이런 식으로 구하면 되겠다는 생각을 했다. 그리고 반복하면서 숫자 3가지를 더해주고 for문으로 1부터 sum의 제곱근까지 반복하면..

문제 https://programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 문제풀이 내적을 모르고도 풀 수 있다. a와 b의 같은 위치에 있는 원소들을 곱하고 그 곱들의 합을 출력하면 된다. 코드 #include #include using namespace std; int solution(vector a, vector b) { int answer ..

문제 https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 문제풀이 s[0]부터 s의 크기만큼 반복하면서 z로 시작하면 num에 0을 push 한다. zero는 4글자이고 if문이 종료되면 for문의 조건으로 인해 i가 +1 되므로 if문에서 i+=3을 해서 zero 다음 문자열부터 for문을 돌게 한다. 마찬가지로 다른 문자들도 이런 식으로 if문으로 조건을 걸어준다. 마지막으로 숫자가 들어온다면 그냥..

문제 https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 문제풀이 array의 i번째 수부터 j번째 숫자까지 자르고, 자른 숫자를 오름차순으로 정렬하고 k번째 숫자를 return 하는 문제이다. i는 commands의 행수만큼, 배열은 0부터 시작이므로 commands[i][0]-1부터 commands[i][1]-1까지 int형 벡터 number에 push 한다. 숫자를 i번째부터 j번째까지 잘랐으므로 sort로 오름차순으로 정렬한다. 정렬이 끝났으면 number의 command..