[프로그래머스] Lv.0

이수연·2024년 6월 22일
0

< 특수 문자 출력하는 방법 >

1. r 을 앞에 붙인다

print(r'!@#$%^&*(\'"<>?:;')

2. (역슬래시)를 \, ', " 앞에 붙인다

print('!@#$%^&*(\\\'\"<>?:;')

[특수문자 종류]

"\n" #줄바꿈
"\t" # tab
"\\" # 백슬래시(\)
"\"" # 큰 따옴표(")
"\'" # 작은 따옴표(')

< 조건 문자열 >

eval() : 문자열로 표현되는 표현식을 실행해서 결과값을 받아오는 함수 (참고 링크)

def solution(ineq, eq, n, m):
    return int(eval(str(n)+ineq+eq.replace("!", "")+str(m)))

def solution(ineq, eq, n, m):
    if eq == '!':
        eq = ''
    return int(eval(f'{n} {ineq}{eq} {m}'))

def solution(ineq, eq, n, m):
    answer = 0
    if n > m and ineq ==">":
        answer = 1
    elif n < m and ineq == "<":
        answer = 1
    elif n == m and eq == "=":
        answer = 1

    return answer

< 주사위 게임 2 >


< 내가 작성한 코드 >

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

< 다른 사람이 작성한 코드>
중복값을 허용하지 않는 set()로 만들어서 길이로 if문을 돌리다니..

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

< 수 조작하기 1 >

< 내가 작성한 코드 >

def solution(n, control):
    for i in control:
        if i == 'w':
            n += 1
        elif i == 's':
            n -= 1
        elif i =='d':
            n+= 10
        elif i == 'a':
            n-= 10
    return n

< 다른 사람이 작성한 코드 >
zip()과 dict()로 이렇게 간단히 만들 수 있다니..

def solution(n, control):
    key = dict(zip(['w','s','d','a'], [1,-1,10,-10]))
    return n + sum([key[c] for c in control])

[ zip() ] (https://www.daleseo.com/python-zip/)
zip() 함수는 여러 개의 순회 가능한(iterable) 객체를 인자로 받고, 각 객체가 담고 있는 원소를 튜플의 형태로 차례로 접근할 수 있는 반복자(iterator)를 반환합니다. 설명이 좀 어렵게 들릴 수도 있는데요. 간단한 예제를 보면 이해가 쉬우실 겁니다.

numbers = [1, 2, 3]
letters = ["A", "B", "C"]
for pair in zip(numbers, letters):
     print(pair)
...
(1, 'A')
(2, 'B')
(3, 'C')

< 수열과 구간 쿼리 3 >

아래와 같은 방식으로 값을 변경할 수도 있구나!

def solution(arr, queries):
    for a,b in queries:
        arr[a],arr[b]=arr[b],arr[a]
    return arr

< 카운트 업 >


< 내 코드 >

def solution(start_num, end_num):
    answer =[]
    for i in range(start_num, end_num+1):
        answer.append(i)
    return answer

< 다른 사람의 풀이 >

  • append()를 사용하지 않고, list()나 []를 사용해서도 리스트를 생성할 수 있다 => 어떻게 하면 코드를 간단하게 만들어낼 수 있을지를 고민하게 되는듯
def solution(start, end):
    return list(range(start, end + 1))
    
def solution(start, end):
return [i for i in range(start,end+1)]

0개의 댓글