25.05.19 코딩 공부 시작

코딩 척척석박사 분들 피드백 환영합니다.

공대생이 코딩에서 살아남기

코드카타(알고리즘+SQL)

06.07 코드카타

코딩 아가 2025. 6. 7. 14:17

Python3

Q

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

A

def solution(n):
    i = n ** 0.5
    if i.is_integer():
        return int((i + 1) ** 2)
    else:
        return -1

풀이

  • if문이 아닌 함수 자체에서 i = n ** 0.5 라는 변수에 저장 후 if i.is_integer(): 으로 if조건문에서 판단
  • **: 제곱

if i.is_integer()란?

  • True: 값이 정수일 때
  • False: 값이 소수일 때

My SQL

Q

다음은 종합병원에 속한 의사 정보를 담은DOCTOR 테이블입니다. DOCTOR 테이블은 다음과 같으며 DR_NAME, DR_ID, LCNS_NO, HIRE_YMD, MCDP_CD, TLNO는 각각 의사이름, 의사ID, 면허번호, 고용일자, 진료과코드, 전화번호를 나타냅니다.

DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.

A

SELECT DR_NAME, 
   DR_ID, 
   MCDP_CD, 
   DATE_FORMAT(HIRE_YMD, '%Y-%m-%d')
from DOCTOR
where MCDP_CD = 'CS' 
   or MCDP_CD = 'GS'
order by HIRE_YMD DESC, 
   DR_NAME

해결

오류: where MCDP_CD = ('CS', 'GS')

해결:

  • where MCDP_CD = 'CS' or MCDP_CD = 'GS'
  • where MCDP_CD in ('CS', 'GS')

이유: 'CS'와 'GS'는 서로 다른 독립 문자열

'코드카타(알고리즘+SQL)' 카테고리의 다른 글

06.09 코드카타  (0) 2025.06.09
06.08 코드카타  (1) 2025.06.08
06.06 코드카타<문자열><date_format>  (0) 2025.06.06
06.05 코드카타 <찾고싶은문자>  (0) 2025.06.05
06.04 코드카타  (7) 2025.06.04