▷ 코드카타

[내일배움캠프 _ QA/QC 5기] 28일차 _ 코드카타 36~38문항

qc-standard 2026. 4. 15. 11:11

2026/04/15 Wed.

● 코드카타 3문제
● 라이브세션 복습
● 통계 / 머신러닝 수강
 주간 목표 ↓
 
 전처리 / 데이터 리터러시 완강

 통계 완강
 머신러닝 기초 완강
 라이브 세션 당일 복습
 포트폴리오 ppt
 자격증 공부

 

라이브세션이 너무 어려워,,, 그저 멘탈 털린 하루였달까요,,,,


⊙ 코드카타

36) 문제 : 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

제한 사항
:
s는 길이 1 이상, 길이 8 이하인 문자열 입니다.
: s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.

생각 과정 :

● 굳이 문자열 길이를 4 혹은 6이라고 언급했으니 len 함수가 이용될 것 같고 || if문을 사용해 문자가 들어가면 Flase, 숫자면 True로 리턴 하면 되지 않을까?
#36
def solution(s):

    if len(s) == 4 or len(s) == 6:

        if s.isdigit():
            return True
        else:
            return False
    else:
        return False

result = solution("a234")
print(result)
result = solution("1234")
print(result)
   #정리
  ① 문자열 길이 4 또는 6인지 확인
  ② 문자열 길이가 4 또는 6으로 확인된 s 중에서 숫자인지 아닌지 체크하는 함수 .isdigit()을 이용
  ③ True인지 False인지 확인
  ④ 문자열 길이가 4 또는 6이 아닌것들은 else로 간주
  ⑤ else는 Flase로 간주
  ⑥


#36
def solution(s):
    return (len(s) == 4 or len(s) == 6) and s.isdigit()

result = solution("a234")
print(result)
result = solution("1234")
print(result)
 
len : 줄자 : 개수,길이를 세어 숫자로 뱉어내줘
● range : 번호표 발행 : 0 ~ n번까지 나열해서 순서대로 뱉어내줘

● .isdigit() [이즈디짓]
   : Boolean 함수 - False 또는 True 판별 함수
   : is- 시리즈 - 파이썬 대표 불리언 함수들
   : if 문에서 조건 검사로 많이 사용

 

 

 

37) 문제 : 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.

제한 조건 : 행령arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다

생각 과정 :

● 행렬 계산인데,,, 이걸 어떻게 구현하지?
#37
def solution(arr1, arr2):
    answer = []
   
    for i in range(len(arr1)):
        row = []
       
        for j in range(len(arr1[0])):
            row.append(arr1[i][j] + arr2[i][j])
           
        answer.append(row)
       
    return answer

result = solution([[1,2],[2,3]], [[3,4],[5,6]])
print(result)
  #정리
  ① for문 행(=층)의 각 숫자를 빈 바구니에 담는다
  ② for문 열(=방?)의 각 숫자를 빈 바구니에 담는다
  ③ 같은 위치끼리 더해서 row(=리스트 숫자 담을 바구니)에 추가(=append)하면 행렬의 형태로 쌓인다
  ④ row(=행렬의 형태로 쌓인 리스트)를  answer 담는다
 len : 줄자 : 개수,길이를 세어 숫자로 뱉어내줘
● range : 번호표 발행 : 0 ~ n번까지 나열해서 순서대로 뱉어내줘

 

 

 

38) 문제 : 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

생각 과정 :

● *를 이용해 행렬을 나타내라?
#38
# 가로:n | 세로:m

n, m = map(int, input().strip().split(' '))

for i in range(m):
    print("*" * n)
가로 : n   |   세로 : m

   #정리
  ① 세로 m번 반복해서 줄세우기
  ② 세로 m에 가로 n 만큼 *을 print 해라

   #정리
  ① 세로 m번 반복해 줄세워서 i 변수에
  ② 가로 n번 반복해 줄세워서 j 변수에
  ③ 줄바꿈 없이 *으로 print 해라

end=""는 줄바꿈을 하지 말라는 뜻!
#38
# 가로:n | 세로:m

n, m = map(int, input().strip().split(' '))

for i in range(m):
    for j in range(n):
        print("*", end="")
    print()