k일 이후에는 명예의 전당의 가장 작은 수보다 등록되는 점수가 더 크다면 가장 작은 수를 제외하고 새 점수를 명예의 전당에 등록한 후 명예의 전당 최솟값을 ans에 추가
defsolution(k, score):
best = score[:k]
m = []
ans = []
new_score = score[k:]
# 프로그램 시작 이후 초기 k일for i in best:
m.append(i)
m.sort(reverse=True) # 내림차순 정렬
ans.append(m[-1])
# k일 이후for i in new_score:
best.sort(reverse=True) # 내림차순 정렬 100.10,1 ...if best[-1] < i:
best.pop()
best.append(i)
best.sort(reverse=True)
ans.append(best[-1])
else:
ans.append(best[-1])
return ans
나머지와 n을 더했을 때 a보다 크다면 다시 콜라로 교환한 후에 다시 반복문을 돌아야 하는 경우가 있을 수도 있으므로 틀림
defsolution(a, b, n):
ans = 0
dum = 0whileTrue:
if n < a:
if n + dum >= a:
n = n + dum
cola = n // a
ans += cola * b
breakelse:
break
cola = n // a
dum = dum + (n % a)
ans += cola * b
n = n // a * b
return ans
정답
나머지를 담는 변수 제거
이렇게 짜면 나머지를 포함해서 교환을 하고, 이어서 또 교환을 진행 할 수 있을 때 계속 진행할 수 있음
defsolution(a, b, n):
ans = 0whileTrue:
if n < a:
break;
ans += (n // a) * b
n = (n // a) * b + (n % a)
return ans
defsolution(food):
ans = ""
half = []
idx = 1for i in food[1:]:
half.append(i//2)
for i in half:
for j inrange(i):
ans += str(idx)
idx = idx + 1
ans += str(0)
idx = idx - 1for i in half[::-1]:
for j inrange(i):
ans += str(idx)
idx = idx - 1return ans
@EntityListeners(AuditingEntityListener.class)를 엔티티에 추가
추상 클래스 필드에 @CreatedDate, @LastModifiedDate 등의 어노테이션 사용
나머지 객체에서 추상클래스를 extends해서 사용
@EnableJpaAuditing// Auditing 기능(entity 생성, 수정 시간 자동으로 기록) 활성화@SpringBootApplicationpublicclassScheduleDevelopApplication{
}
@Getter@MappedSuperclass// 해당 클래스를 구현했을 때 데이터베이스에 잘 적용되도록 해줌@EntityListeners(AuditingEntityListener.class)// Auditing 리스너 등록, 생성되거나 수정될 때 값을 업데이트 함publicabstractclassBaseEntity{
@CreatedDate@Column(updatable = false)private LocalDateTime createdAt;
@LastModifiedDateprivate LocalDateTime modifiedAt;
}
Comment Entity
생성 및 수정 시간을 기록하는 클래스인 BaseEntity를 상속
Schedule클래스와 Member클래스를 단방향 연관관계로 알고 있음 (어떤 게시물의 댓글인지, 누가 썼는지 알아야 하므로!)