728x90

전체 글 (343)

728x90
08
02
728x90

문제 설명

대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.

예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.

제한사항
  • 문자열 s의 길이 : 50 이하의 자연수
  • 문자열 s는 알파벳으로만 이루어져 있습니다.

 

입출력 예
s answer
"pPoooyY" true
"Pyy" false
입출력 예 설명

입출력 예 #1
'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return 합니다.

입출력 예 #2
'p'의 개수 1개, 'y'의 개수 2개로 다르므로 false를 return 합니다.

※ 공지 - 2021년 8월 23일 테스트케이스가 추가되었습니다.

 

class Solution {
    boolean solution(String s) {
        boolean answer = true;
        int p_count = 0, y_count = 0; //p갯수와 y의 갯수를 저장할 변수

        for(int i =0; i<s.length(); i++) //s의 길이만큼 반복
        {
        	//p나 P가 있을 경우
            if(s.substring(i, i+1).equals("p") || s.substring(i, i+1).equals("P"))
            {
            	//p_count의 값을 1 증가시킴
                p_count++;
            }
            //y나 Y가 있을경우
            if(s.substring(i, i+1).equals("y") || s.substring(i, i+1).equals("Y"))
            {
            	//y_count의 값을 1 증가시킴
                y_count++;
            }
        }
        //p와 y의 갯수가 같으면 true, 아니면 false
        answer = p_count == y_count ? true : false;
        return answer;
    }
}
728x90
COMMENT
 
08
02
728x90

문제 설명

String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

제한 사항
  • seoul은 길이 1 이상, 1000 이하인 배열입니다.
  • seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
  • "Kim"은 반드시 seoul 안에 포함되어 있습니다.
입출력 예
seoul return
["Jane", "Kim"] "김서방은 1에 있다"
class Solution {
    public String solution(String[] seoul) {
        String answer = "";
        for(int i = 0; i<seoul.length; i++) //seoul의 길이만큼 반복
        {
            if(seoul[i].equals("Kim")) //i번째의 인덱스에 있는 값이 Kim과 같으면
            {
                answer = "김서방은 " + i + "에 있다"; //answer에 해당 내용을 저장
            }
        }
        return answer;
    }
}
728x90
COMMENT
 
07
20
728x90

문제 설명

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.


NAME TYPE NULLABLE
ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
INTAKE_CONDITION VARCHAR(N) FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_INTAKE VARCHAR(N) FALSE

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. ANIMAL_OUTS 테이블의 ANIMAL_ID는 ANIMAL_INS의 ANIMAL_ID의 외래 키입니다.


NAME TYPE NULLABLE
ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_OUTCOME VARCHAR(N) FALSE

천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요.

예시

예를 들어, ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블이 다음과 같다면

ANIMAL_INS


ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKE
A352713 Cat 2017-04-13 16:29:00 Normal Gia Spayed Female
A350375 Cat 2017-03-06 15:01:00 Normal Meo Neutered Male

ANIMAL_OUTS


ANIMAL_ID ANIMAL_TYPE DATETIME NAME SEX_UPON_OUTCOME
A349733 Dog 2017-09-27 19:09:00 Allie Spayed Female
A352713 Cat 2017-04-25 12:25:00 Gia Spayed Female
A349990 Cat 2018-02-02 14:18:00 Spice Spayed Female

ANIMAL_OUTS 테이블에서

  • Allie의 ID는 ANIMAL_INS에 없으므로, Allie의 데이터는 유실되었습니다.
  • Gia의 ID는 ANIMAL_INS에 있으므로, Gia의 데이터는 유실되지 않았습니다.
  • Spice의 ID는 ANIMAL_INS에 없으므로, Spice의 데이터는 유실되었습니다.

따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.


ANIMAL_ID NAME
A349733 Allie
A349990 Spice

 

SELECT OUTS.ANIMAL_ID, OUTS.NAME //ANIMAL_ID, NAME 컬럼 선택
FROM ANIMAL_INS INS RIGHT JOIN ANIMAL_OUTS OUTS  //조인기준 오른쪽에 있는거 다 SELECT
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID //ANIAML_ID를 기준으로 조인
WHERE INS.ANIMAL_ID IS NULL  //INS.ANIMAL_ID가 NULL인것만 선택
ORDER BY ANIMAL_ID ASC; //ANIMAL_ID를 기준으로 오름차순 정렬

 

728x90
COMMENT
 
07
12
728x90

문제 설명

괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어

  • "()()" 또는 "(())()" 는 올바른 괄호입니다.
  • ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.

'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.

제한사항
  • 문자열 s의 길이 : 100,000 이하의 자연수
  • 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.

 

입출력 예
s answer
"()()" true
"(())()" true
")()(" false
"(()(" false
입출력 예 설명

입출력 예 #1,2,3,4
문제의 예시와 같습니다.

import java.util.*;
class Solution {
    boolean solution(String s) {
        boolean answer = true;
        int count = 0; 
        for(int i = 0; i<s.length(); i++) //s의 길이만큼 반복
        {
            if(s.charAt(i)=='(') //여는 괄호가 있으면
            {
                count++; //count를 ++
            }
            else //닫는 괄호가 있으면
            {
                count--; //count를 --
                if(count<0) //count가 음수인경우(닫는괄호가 여는괄호보다 먼저 나온경우)
                {
                    answer = false; //answer에 false
                    return answer; //리턴
                }
            }
        }
        //여는괄호 닫는괄호의 수가 동일하지 않다면 count가 0보다 크게됨, answer에 false를 저장
        //수가 동일하다면 answer에 true를 저장
        answer = count>0 ? false : true;
        
        return answer;
    }
}
728x90
COMMENT