Python

Python Lv.0 코딩 기초 트레이닝 - 문자열 섞기, 문자 리스트를 문자열로 변환하기, 문자열 곱하기, 더 크게 합치기, 두 수의 연산값 비교하기, n의 배수, 공배수, 홀짝에 따라 다른 값 반환하기, 조건 문자열, flag에 따라 다른 값 반환하기

Se On 2024. 5. 22. 10:25

코딩 기초 트레이닝

1. 문자열 섞기

  • 길이가 같은 두 문자열 str1, str2를 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열 만들기
  • str1과 str2를 저장할 변수 선언: answer = ' '
  • for문
    • 반복
      • 길이가 같은 문자열이기에 반복은 len(str1)만큼만 해도 됨
      • for i in range(len(str1))
    • answer
      • for문 돌리면서 answer 변수에 str1[0]+str2[0]+...str1[n]+str2[n] 추가
      • answer = answer + str1[i] + str2[i]
def solution(str1, str2):
    answer = ''
    for i in range(len(str1)):
        answer = answer + str1[i] + str2[i]
    return answer;

 

 

2. 문자 리스트를 문자열로 변환하기

  • 배열 arr의 원소들을 순서대로 이어붙인 문자열 return
  • for문
    • 반복
      • arr의 길이만큼만 하면 됨
      • for i in range(len(arr)
    • answer
      • for문 돌리면서 answer 변수에 arr[0] + ... + arr[n] 추가
      • answer = answer + arr[i]
def solution(arr):
    answer = ''
    for i in range(len(arr)):
        answer = answer + arr[i]
    return answer;

 

 

3. 문자열 곱하기

  • my_string을 k번 반복
    • answer = my_string*k
def solution(my_string, k):
    answer = my_string*k
    return answer

 

 

4. 더 크게 합치기

  • a or b b or a
    • a, b 정수를 문자로 변환해서 합쳤다가 다시 정수로 변환해 주어야 함
    • ab = int(str(a) + str(b))
    • ba = int(str(b) + str(a))
  • 양의 정수 a b >= b ⊕ a 면 a ⊕ b
    • if ab >= ba: answer = ab
  • 양의 정수 b a >면 b a
    • else: answer = ba
def solution(a, b):
    answer = 0
    ab = int(str(a)+str(b))
    ba = int(str(b)+str(a))
    if ab >= ba:
        answer = ab
    else:
        answer = ba
    return answer;

 

 

5. 두 수의 연산값 비교하기

  • a ⊕ b
    • a, b 정수를 문자로 변환해서 합쳤다가 다시 정수로 변환해 주어야 함
    • ab = int(str(a) + str(b))
  • 2 * a * b
    • ab2 = 2 * a * b
  • a ⊕ b가 2 * a * b보다 크거나 같다면
    • if ab >= ab2: answer = ab
  • 2 * a * b가 크다면
    • else: answer = ab2
def solution(a, b):
    answer = 0
    ab = int(str(a) + str(b))
    ab2 = 2*a*b
    if ab >= ab2:
        answer = ab
    else:
        answer = ab2
    return answer

 

 

6. n의 배수

  • num이 n의 배수라면 1 return
    • if num % n == 0: answer = 1
  • 아니라면 0 return
    • else: answer = 0
def solution(num, n):
    answer = 0
    if num % n == 0:
        answer = 1
    else:
        answer = 0
    return answer;

 

 

7. 공배수

  • number가 n와 m의 공배수: number를 n과 m으로 나누었을 때 나머지가 0
    • if number % n == 0 and number % m == 0: answer = 1
  • 아니라면
    • esle: answer = 0
def solution(number, n, m):
    answer = 0
    if number % n == 0 and number % m == 0:
        answer = 1
    else:
        answer = 0
    return answer;

 

 

8. 홀짝에 따라 다른 값 반환하기

  • n이 짝수라면 n이하의 짝수인 모든 양의 정수 제곱의 합
    • n이 짝수라면 = n을 2로 나눈 나머지가 0이라면
      • if n % 2 == 0:
    • n이하의 짝수인 모든 양의 정수 제곱의 합
      • n 이하의 짝수인 모든 양의 정수
        • for i in range (0, n+1, 2)
      • 제곱의 합(**: 제곱 산술연산자)
        • answer = answer + i**2
  • n이 홀수라면 n이하의 홀수인 모든 양의 정수의 합
    • n이 홀수라면 = 짝수가 아니라면
      • else:
    • n 이하의 홀수인 모든 양의 정수
      • for i in range (1, n+1, 2):
    • 정수의 합
      • answer = answer + i
def solution(n):
    answer = 0
    if n % 2 == 0:
        for i in range(0, n+1, 2):
            answer = answer + i**2
    else:
        for i in range(1, n+1, 2):
            answer = answer + i
    return answer

 

 

9. 조건 문자열

  • ineq: "<"와 ">" 둘 중 하나 & eq: "="와 "!" 둘 중 하나
    • 조건을 함수로 매핑한 딕셔너리 정의
      • conditions = {(">", "="): lambda n, m: n>=m, ("<", "="): lambda n, m: n<=m, (">", "!"): lambda n, m: n>m, ("<", "!"): lambda n, m: n<m)}
  • 참이면 1, 거짓이면 0 return
    • 조건에 맞는 함수 호출(ineq, eq 키에 해당하는 람다 함수 찾아서 호출, 이는 True와 False 호출)
      • conditions[(ineq, eq)](n, m)
    • True, False 값을 정수로 변경
      • int(conditions[(ineq, eq)](n, m))
def solution(ineq, eq, n, m):
    answer = 0
    conditions = {
        (">", "="): lambda n, m: n>=m,
        ("<", "="): lambda n, m: n<=m,
        (">", "!"): lambda n, m: n>m,
        ("<", "!"): lambda n, m: n<m
    }
    answer = int(conditions[(ineq, eq)](n,m))
    return answer;

 


10. flag에 따라 다른 값 변환하기

  • flag가 Ture면 a+b 값을 출력
    • if flag == Ture: answer = a+b
  • Flase면 a-b 값을 출력
    • else: answer = a-b
def solution(a, b, flag):
    answer = 0
    if flag == True:
        answer = a+b
    else:
        answer = a-b
    return answer;

 

참고 사이트: https://programmers.co.kr/

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

반응형