코딩테스트 연습 7일차

김채원·2023년 2월 3일
0

coding_test

목록 보기
7/11

Lv.1

시저 암호

틀린 코드
아스키코드를 써야하는 것만 감을 잡고 뼈대를 만들었다.
이 경우 n이 커지면 밀어도 다른 문자가 나온다.
알파벳 범위 내에서 돌려면 a,A를 이용한 수식이 필요하다.

(chr((ord(j)-ord('A')+n)%26+ord('A')))

def solution(s, n):
    answer = []
    word=s.split(" ")
    
    for i in word:
        part=[]
        for j in i: 
            part.append(chr(ord(j)+n)) 
        result ="".join(part) 
        
    answer.append(result)
    answer=" ".join(answer)
    return answer

수정 코드

def solution(s, n):
    answer = []
    word=s.split(" ")
    
    for i in word:
        part=[]
        for j in i: 
            if j.islower():
                part.append((chr((ord(j)-ord('a')+n)%26+ord('a'))))
            else:
                part.append((chr((ord(j)-ord('A')+n)%26+ord('A'))))
        part="".join(part)
        answer.append(part)
    answer = " ".join(answer)               

    return answer

들여쓰기 실수해서 삽질함..;;;

삼총사

내 코드

from itertools import combinations

def solution(number):
    cnt = 0
    for c in combinations(number, 3):
        if sum(c) == 0:
            cnt += 1
    
    return cnt

숏코딩
아직...이해가 안 됐다.
저 not sum(c) 부분을 모르겠다.

from itertools import combinations

def solution(number):
    return sum(not sum(c) for c in combinations(number, 3))

최소 직사각형

가로세로 신경 안 쓰는게 관건

def solution(sizes):
    width = []
    height = []

    for i in range(len(sizes)):
        width.append(max(sizes[i])) # 둘중에 큰걸 가로로
        height.append(min(sizes[i])) #작은걸 세로로

    return max(width)*max(height)
    

이걸 그냥 한줄로...ㅠㅠ


def solution(sizes):
    return max(max(x) for x in sizes) * max(min(x) for x in sizes)

📎 sum(list, [])

https://stackoverflow.com/questions/33541947/what-does-the-built-in-function-sum-do-with-sumlist


solution = lambda sizes: max(sum(sizes, [])) * max(min(size) for size in sizes)

[1차] 비밀지도

📎 bin()

0b가 붙은 이진수 변환

📎 zfill(n)

지정한 자리수에서 모자란 자리수에는 0을 채움

def solution(n, arr1, arr2):
    answer = []
    for i in range(n):
        a = bin(arr1[i] | arr2[i])[2:].zfill(n)
        b = a.replace("1", "#").replace("0", " ")
        answer.append(b)
    
    return answer

체력이 딸려서... 오늘은 여기까지...
하루에 정해놓은 최저 개수가 3개니까...

profile
잡다한 공부 기록용

0개의 댓글