728x90
반응형
SMALL

2024/11/08 3

[Python] 카펫

✏️ 문제 문제 파악처음에는 temp_b, temp_y를 두어 이 두 값이 각각 brown, yellow와 같을 때의 width, height를 리턴하는 방향으로 코드를 짰는데 기본 예제부터 시간 초과가 났다.. 그래서 height의 값이 하나하나 올리는데 대신 가로 길이는 세로 길이보다 크거나 같다는 조건이 있으므로 이를 조건문으로 두어 yellow 값이 (width - 2) * (height- 2) 일 때의 가로와 세로 길이를 출력하도록 코드를 짰다.  코드def solution(brown, yellow): total = brown + yellow for height in range(3, total): width = total // height ..

[Python] 영어 끝말잇기

✏️ 문제 문제 파악중복된 단어가 있는 지 확인은 words 배열 내에 해당 단어를 count 했을 때 2 이상인 지로 확인했다. 중복된 단어가 또 나오는 지 확인할 때 단순히 중복된 단어가 있으면 bool 상태만 변경해서 중복된 단어가 또 나왔는 지 확인하는 방향으로 코드를 짰다.근데 bool 타입으로 하면 배열 내에 중복된 단어가 두 개 이상일 때 앞에 중복되었다고 체크한 단어랑 지금 단어가 같은 지 확인이 안됐다.  그래서 중복되면 dup라는 배열에 넣고 뒤에 중복 단어가 나오면 dup 배열에 있는 지 확인했다.dup 배열에 있으면 단어를 중복해서 말한 거고, dup 배열에 없으면 단어를 중복해서 말한 게 아니게 된다.  코드def solution(n, words): index = -1 ..

[Python] 구명보트

✏️ 문제 문제 파악처음엔 배열에 pop()을 해서 len(people)의 값이 0이 될 때 while 반복문을 끝내는 방향으로 짰는데 pop(0) 메소드를 실행하면 0 인덱스 뒤에 있는 요소들이 인덱스를 다시 배정받아야하는데 이때 많은 시간이 소요되어 효율성 테스트 1번에서 시간초과가 떴다. 그래서 배열의 내용을 건들이지 않는 투 포인터 알고리즘으로 풀었따.  코드시간초과 풀이def solution(people, limit): answer = 0 people.sort() while len(people) > 0: # 최소 몸무게 이하 if limit - 39 = (people[0] + people[-1]): people.pop(0) ..

728x90
반응형
LIST