본문 바로가기

분류 전체보기

(261)
2016년 / 프로그래머스 정답시작하는 날을 기준으로 요일 배열을 나열경과일을 기준으로 요일을 적용해야 하므로 (배열은 0부터 시작하니까) 경과일에 -1을 빼줘야 함def solution(a, b): # 2016년 각 월의 일 수 month = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # 2016년 1월 1일은 금요일 (FRI) week = ["FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"] # 1월 1일은 금요일, 1월 1일을 입력했다면 1월 1일로부터 경과일은 0일임 elapsed_date = sum(month[:a]) + b - 1 return week[elapsed_date % 7]
NewsFeed 프로젝트 : 친구 관리 기능 트러블 슈팅 친구 관리 기능 관련 ERD역방향 친구 신청 등록을 방지하기 위해서 친구 요청을 보내게 되면 정방향으로 1번 역방향으로 1번 쿼리가 insert됨1. 정방향 데이터 추가 : A가 B한테 친구신청을 보내서, from_id : a, to_id : b, is_friend : True를 insert2. 역방향 데이터 추가 : from_id : b, to_id : a, is_friend : False를 insert 문제 : 의도하지 않은 inner join 수행 결과값친구 신청한 목록을 조회하기 위해서 friend 테이블에 inner join을 수행했는데, 중복컬럼이 반복해서 나오게 됨1번은 지금 2번과 3번에게 친구 신청을 보낸 상태 inner join을 사용하여 정방향 역방향을 합쳐서 데이터 조회를 수행함se..
명예의 전당 (1) / 프로그래머스 정답프로그램 시작 초기 k일 까지는 명예의 전당에서 가장 작은 값을 ans에 추가k일 이후에는 명예의 전당의 가장 작은 수보다 등록되는 점수가 더 크다면 가장 작은 수를 제외하고 새 점수를 명예의 전당에 등록한 후 명예의 전당 최솟값을 ans에 추가def solution(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...
콜라 문제 / 프로그래머스 첫번째 풀이나머지를 담는 dum 변수나머지와 n을 더했을 때 a보다 크다면 다시 콜라로 교환하고 반복문 종료나머지와 n을 더했을 때 a보다 크다면 다시 콜라로 교환한 후에 다시 반복문을 돌아야 하는 경우가 있을 수도 있으므로 틀림def solution(a, b, n): ans = 0 dum = 0 while True: if n = a: n = n + dum cola = n // a ans += cola * b break else: break cola = n // a dum = dum + (n % a)..
푸드 파이트 대회 / 프로그래머스 정답리스트 역순으로 조회하는 법 : 조회할 리스트[::-1] (시작값, 끝값, 증가값)음식을 반으로 나눈 리스트를 생성해서 처음부터 끝까지 조회 후 0 입력0을 입력한 후에 반으로 나눈 리스트를 역순으로 조회def solution(food): ans = "" half = [] idx = 1 for i in food[1:]: half.append(i//2) for i in half: for j in range(i): ans += str(idx) idx = idx + 1 ans += str(0) idx = idx - 1 for i in half[::-1]: for j in range(i): ..
@RequestBody의 원리와 RequestDto 만드는 법 @RequestBodyHTTP 요청의 본문(payload) 데이터를 Java 객체로 매핑해줌JSON 데이터를 DTO 객체로 변환 위와 같이 요청을 JSON 데이터를 요청 보내면 아래의 객체로 매핑됨!@PostMapping("/signup") public ResponseEntity signUp(@Valid @RequestBody SignupRequestDto requestDto){ SignupResponseDto signupResponseDto = authService.signUp(requestDto); return new ResponseEntity(signupResponseDto, HttpStatus.CREATED); } 동작 원리1.  HttpMessageConver..
일정 관리 서버 Develop : 댓글, 일정 페이징 조회 기능 추가 생성 시간 및 수정시간 관리 : JPA AuditingJPA Auditing : 엔티티의 생성, 수정 시간을 자동으로 기록하고 관리해주는 기능@CreatedDate : 엔티티가 처음 저장될 때 생성 시간 저장@LastModifiedDate : 엔티티가 업데이트될 때 수정 시간 저장 설정방법@EnableJpaAuditing를 활성화@EntityListeners(AuditingEntityListener.class)를 엔티티에 추가추상 클래스 필드에 @CreatedDate, @LastModifiedDate 등의 어노테이션 사용나머지 객체에서 추상클래스를 extends해서 사용@EnableJpaAuditing // Auditing 기능(entity 생성, 수정 시간 자동으로 기록) 활성화@SpringBootAp..
일정 관리 서버 Develop : 예외처리 및 검증, 비밀번호 암호화 구현 예외처리 및 검증에러 응답 객체@Getterpublic class CommonErrorResponse { private String status; private String message; private int code; public CommonErrorResponse(HttpStatus status, String message){ this.status = status.name(); this.code = status.value(); this.message = message; }} 예외 처리 클래스RuntimeException을 상속한 ApplicationException을 생성@Getterpublic class ApplicationExcep..