본문 바로가기

코딩테스트 연습25

[프로그래머스] 가운데 글자 가져오기 문제설명> 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 코드> 스트링을 한 글자씩 split했다. 길이를 구해서 t 변수에 담는다. 짝수/홀수를 구분해서 스트링변수 answer에 담는다. class Solution { public String solution(String s) { String answer = ""; String[] s2 = s.split(""); int t = s.length(); for(int i=0;i String answer = "" 를 지우고, 스트링의 길이를 구해서 홀수면 toString(s.charAt(ans/2))로 그대로 반환 s... 2020. 1. 31.
[프로그래머스] 문자열 내 p와 y의 개수 문제설명> 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 pPoooyY면 true를 return하고 Pyy라면 false를 return합니다. 제한사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 코드> class Solution { boolean solution(String s) { boolean answer = true; char[] t1 = s.toCharArray(); int p.. 2020. 1. 30.
[프로그래머스] 5. 콜라츠 추측 문제설명> 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. 코드> #include #include #include int solution(lon.. 2019. 12. 11.
[프로그래머스] 4. 평균 구하기 문제설명> 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 코드> #include #include #include double solution(int arr[], size_t arr_len) { double answer = 0; scanf("%d", &arr); for(int i=0;i size_t 는 unsigned int 이며, 문자열의 메모리 사이즈를 나타낼 때 사용한다. 메모리나 문자열 등의 길이를 구할 때 unsigned int 대신 size_t 라는 형으로 길이가 반환된다. size_t 타입을 쓰는 이유는 시스템에서 주소 지정이 가능한 메모리 영역과 일치하는 크기를 선언하는 이식가능한 방법을 위해서라고 한다. https://seoulforest... 2019. 12. 10.
[프로그래머스] 3. 직사각형 별찍기 문제설명> 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 코드> #include int main(void) { int a; int b; scanf("%d %d", &a, &b); for (int i = 0; i 이중for문을 쓰지 않고 풀은 사람이 있었다. for(int i=0;i 2019. 12. 9.
[프로그래머스] 2. 정수 제곱근 판별 문제설명> 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 입출력 예#1 121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. 입출력 예#2 3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다. 코드> #include #include #include #include long long solution(long long n) { long long answer = 0; long long x = sqrt(n); if(x==sqrt(n)) { answer = pow(x+1,2); return answer; } .. 2019. 12. 8.