2022.11.18
오늘 자바 강의와 특강, CS특강도 들었지만 정리를 제대로 못해서 다음 TIL에 정리하기로 하고 !
오늘도 알고리즘을 한문제 풀었다 !
오늘의 목표는 자바로 알고리즘 풀기였지만 생각보다 버벅거려
파이썬으로 우선 풀고 자바로 다시 적어봐야지 했지만...나 자신 너무 자신만만 했꾸...
2시간 정도 걸리고 너무 오래걸리고 늦어서 자바로는 못 해봤다.
오늘의 문제는 연속된 수의 합 이다
문제설명
연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.
제한사항
1 ≤ num ≤ 100
0 ≤ total ≤ 1000
num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.
입출력 예 설명
입출력 예 #1 : num = 3, total = 12인 경우 [3, 4, 5]를 return합니다.
입출력 예 #2 : num = 5, total = 15인 경우 [1, 2, 3, 4, 5]를 return합니다.
입출력 예 #3 : 4개의 연속된 수를 더해 14가 되는 경우는 2, 3, 4, 5입니다.
우선 입출력 예를 몇개 더 만들고 규칙을 찾아봤다.
num이 짝수일 때와 홀수일 때 다른것을 찾았다.
규칙을 찾고 나눠서 해야겠다 싶어 일단 num이 짝수인 것 부터
풀어보려 했지만 거기서부터 막혔다.....
포기하기 전까지 혼자 풀어보겠다고 끙끙 앓이
지우면서 다시쓰고 해서 내가 어떤식으로 써서 틀렸었는지를 모르겠다...
다음부턴 잘적어놔야지
def solution(num, total):
answer = []
n = total/num - num//2
n2 = total//num - ((num//2)-1)
if total % num == 0 :
for i in range(0, num) : # 끝 숫자는 포함 하지 않음
n += 1
answer.insert(i, n-1)
else :
for i in range(0, num) :
n2 += 1
answer.insert(i, n2-1)
return answer
프로그래머스 제출 후 채점하기 결과 100나와서 뿌듯했지만
다른사람들은 더 짧고 간단하게 썻을것 같아 내가 얼마나 못썻을려나 걱정이 됬다
구경을 해보니 진짜 1줄로 바로 끝내버리는 사람도 있었지만
나랑 비슷하게 하는 사람도 있어 다행?스러웠다
지금은 푸는데만 집중! 하고 나중엔 더 효율적이고 간단하게 짤 수 있도록 해야지!!!!
'TIL' 카테고리의 다른 글
| 스파르타 내배캠 Spring 32일차 (0) | 2022.12.01 |
|---|---|
| TIL스파르타 내배캠 Spring 31일차 (3) | 2022.11.30 |
| 스파르타 내배캠 Spring 18일차 (1) | 2022.11.17 |
| 스파르타 내배캠 Spring 17일차 (1) | 2022.11.16 |
| 스파르타 내배캠 Spring 15일차 (0) | 2022.11.14 |