[코테 준비 : day01]

Choi·2023년 6월 22일
0

코딩테스트 준비

목록 보기
1/22
post-thumbnail

이러다가 다 죽어..

사실 졸작 심사가 끝나고 힘이 쭈욱 빠져서 뽀로로였다. 노는게 제일 좋아.
하지만 이러다가 정말 큰일나겠다 싶어서 코테 준비..!
4학년을 올라오고 몇 번 코딩테스트를 경험한 적이 있는데 전혀 풀지 못했다. 그래서 결심했다!

1일 5문제 풀이, velog 업로드!

가보자구요😤

  1. 삼총사
    https://school.programmers.co.kr/learn/courses/30/lessons/131705

정수 배열이 주어질 때 3개의 조합을 찾아서 합이 0이되는 것을 찾아라.
combinations 라이브러리를 가져와서 조합을 찾아서 해결했다.
for문을 여러 개 써서 찾아내는 방법도 있지만 라이브러리를 알고있다면 코드가 간단명료하다.

def solution(number):
    cnt=0
    from itertools import combinations
    for i in combinations(number,3):
        if sum(i)==0:
            cnt+=1
    return cnt

2.크기가 작은 부분문자열
https://school.programmers.co.kr/learn/courses/30/lessons/147355

긴 문자열이 있고 작은 문자열이 있을 때 작은 크기로 잘라서 크기 비교 후 카운트.

def solution(t, p):
    answer = 0
    n = len(p)
    for i in range(len(t)-n+1):
        parts = t[i:i+n]
        if parts <= p:
            answer += 1
    return answer

3.푸드 파이트 대회
https://school.programmers.co.kr/learn/courses/30/lessons/134240

푸드 파이트 대회가 열린다. 3가지 음식을 칼로리가 적은 순서로 먹는다. 가운데에는 물.
문자열을 만들되 오른쪽 선수 음식은 왼쪽 선수 음식의 역순, 가운데는 물이라는 것만 캐치!

def solution(food):
    temp=''
    for i in range(1,len(food)):
        temp+=str(i)*(food[i]//2)
    return temp+'0'+temp[::-1]

4.추억 점수
https://school.programmers.co.kr/learn/courses/30/lessons/176963

친구들 이름, 추억 점수, 여러 사진들 속 이름이 주어질 때 친구들의 추억 점수를 통해 사진 속 추억점수를 계산한다. 첫번 째 코드는 내 것. 두 번째 코드는 너무 신기해서 가져와봤다. 정말 같은 결과를 내지만 알고리즘은 정말 간단하다. 보고 배우자:)

def solution(name, yearning, photo):
    answer = []
    for peoples in photo:
        result = 0
        for people in peoples:
            if people in name:
                result += yearning[name.index(people)]
        answer.append(result)
    return answer
def solution(name, yearning, photo):
    return [sum(yearning[name.index(j)] for j in i if j in name) for i in photo]

5.달리기 경주
https://school.programmers.co.kr/learn/courses/30/lessons/178871

달리경주를 한다. 해설진이 선수의 이름을 부르면 추월한 것이다. 이에 따라 순위를 출력하라. 입력으로는 현재 등수 순서대로 담긴 배열, 해설진이 경기 중 부른 이름을 담은 배열이다.

def solution(players, callings):
    pla_dic = {key: i for i, key in enumerate(players)}

    for p in callings:
        c = pla_dic[p]
        pla_dic[p] -= 1
        pla_dic[players[c-1]] += 1
        players[c-1], players[c] = players[c], players[c-1]

    return players
profile
느려도 내 것으로 만드는게 좋잖아?

0개의 댓글