본문 바로가기
PYTHON

[프로그래머스] 파이썬 기초 트레이닝 DAY5 조건문

by jnhn 2023. 8. 20.

파이썬 프로그래머스 코딩 기초 트레이닝 day5 코드처리하기

def solution(code):
    ret = ""
    mode = 0
    for idx in range(len(code)):
        if code[idx] == "1":
            mode = 1 - mode
        else:
            if mode == 0 and idx % 2 == 0: #mode가 0이고 idx가 짝수면
                ret += code[idx] 
            elif mode == 1 and idx % 2 == 1: #mode가 1이고 idx가 홀수면
                ret += code[idx] 

    if ret == "": 
        return "EMPTY"

문제를 이해하는데 좀 오래걸렸다 워낙 문제가 길어서 좀 헷갈렸는데 이해하려하지 않고 그렇구나 받아들이면 문제 설명대로 차근차근 코드를 짜니 풀렸다. 어려운 문제더라도 차근차근 풀다보면 어떻게든 해결이 되긴 하는구낭 문제가 어렵더라도 당황하지 말고 차근차근 풀어갈 것

파이썬 코딩 기초 트레이닝 등차 수열의 특정 항만 더하기

처음 풀이:

def solution(a, d, included):
    answer = 0
    for i in range(len(included)):        
        if included[i] == True:
            answer += a + d*i
    return answer

다른 풀이:

def solution(a, d, included):
    return sum(a + i * d for i, f in enumerate(included) if f == True)

아직 코초보.. 한줄로 이렇게 간단하게 풀면되는걸 다섯 줄이나 써서 풀다니
간단하게 줄여서 쓰는 방법을 배우자 남들하는거 필사하듯 따라하다보면 어느새 코딩 실력이 늘어있겠쥐😭

python programmaers 주사위 게임2

내풀이:

def solution(a, b, c):
    if a == b == c:
        return (a+b+c)*(a**2+b**2+c**2)*(a**3+b**3+c**3)
    elif a==b or b==c or a==c:
        return (a+b+c)*(a**2+b**2+c**2)
    else:
        return a+b+c

파이썬 set() 함수를 활용한 풀이:

def solution(a, b, c):
    ans = [a, b, c]
    if len(set(ans)) == 1:
        return (a+b+c)*(a**2+b**2+c**2)*(a**3+b**3+c**3)
    elif len(set(ans)) == 2:
        return (a+b+c)*(a**2+b**2+c**2)
    else:
        return a+b+c

다른 사람들의 풀이를 훑어보다보니 set이라는 함수를 이용해서 풀길래 나도 활용해보았다.

 

파이썬 프로그래머스 코딩테스트 연습 코딩 기초 트레이닝 원소들의 곱과 합

내 풀이:

def solution(num_list):
    a, b = 1 , 0
    for i in num_list:
        a = a*i
        b = b+i
    return 1 if (a<b**2) else 0

나는 자꾸 if~ return ~ else return ~ 이런식으로 쓰는데, 코딩 잘하는 사람들 보니까 다들 나의 반대로 쓰는것 같아서 나도 한번 연습해보았당 return ** if ~ else $$ 훨씬 간단한 것 같은데 아직 연습이 많이 필요할듯

파이썬 기초 트레이닝 코딩 이어붙인 수

내풀이:

def solution(num_list):
    even= "" #짝수만
    odd = "" #홀수만
    for i in num_list:
        if i%2 ==0: 
            even+=str(i)
        else:
            odd+=str(i)
    return (int(even)+int(odd))

join 함수 활용한 풀이:

def solution(num_list):
    even= int(''.join([str(i) for i in num_list if i%2 ==0]))
    odd = int(''.join([str(i) for i in num_list if i%2 ==1]))
    return even+odd

join함수에 익숙하지 않아서 이렇게 이어붙인 문제 나온김에 활용해서 풀이해보았다.


7월에는 파이썬 코테 위주로 풀었는데 말이지 SQL도 너무 까먹은것 같아서 요즘엔 같이 병행해서 하루에 2문제 이상 풀고 있다. 정말 외국어처럼 안하면 바로 까먹어버리는 코딩의 세계 자닌해요 특히 조건문은 조금이라도 짧게 코딩할 수 있는 방법에 대해 고민해봐야겠다. 효율충 istp에게는 간단하고 쉬운게 짱이라구