본문 바로가기

전체 글

1697 번 python 숨바꼭질 숨바꼭질 다국어 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 186774 53710 33851 25.267% 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수.. 더보기
photogram 스크롤시 페이징 처리 스크롤 처리시 page +=2 를 하여 페이징 수를 늘려주고 storyLoad함수를 다시호출(ajax호출) // (2) 스토리 스크롤 페이징하기 $(window).scroll(() => { let checkNum=$(window).scrollTop()-($(document).height()-$(window).height()); if(checkNum-10){ page+=2; storyLoad(); } }); offset 페이지 0 1, 2 Limit 한페이지에 몇개가 나오게할것인가. let page=0; // (1) 스토리 로드하기 function storyLoad() { $.ajax({ url:"/api/image?offset="+page+"&limit="+2, // 한 페이지에 3개의 게시물만 나오게해.. 더보기
photogram RestApi 리팩토링 일기 2일차 리팩토링 하기전 소스코드 UserApiController @PutMapping("/user/{id}") public CMResDto update(@PathVariable long id, @Valid UserUpdateDto userUpdateDto, BindingResult bindingResult, @AuthenticationPrincipal PrincipalDetails principalDetails ){ User userEntity = userService.memberUpdate(id, userUpdateDto); return new CMResDto(1,"회원수정완료",userEntity);// 응답시에 유저 엔티티의 모든 getter 함수가 호출되고 JSON으로 파싱하여 응답한다. } UserSe.. 더보기
1654번 랜선자르기 이분탐색 랜선 자르기 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 156532 36560 24658 21.117% 문제 집에서 시간을 보내던 오영식은 박성원의 부름을 받고 급히 달려왔다. 박성원이 캠프 때 쓸 N개의 랜선을 만들어야 하는데 너무 바빠서 영식이에게 도움을 청했다. 이미 오영식은 자체적으로 K개의 랜선을 가지고 있다. 그러나 K개의 랜선은 길이가 제각각이다. 박성원은 랜선을 모두 N개의 같은 길이의 랜선으로 만들고 싶었기 때문에 K개의 랜선을 잘라서 만들어야 한다. 예를 들어 300cm 짜리 랜선에서 140cm 짜리 랜선을 두 개 잘라내면 20cm는 버려야 한다. (이미 자른 랜선은 붙일 수 없다.) 편의를 위해 랜선을 자르거나 만들 때 손실되는 길이는 없다고 가정하며, 기.. 더보기
[python3 ]골드바흐의 추측 골드바흐의 추측 성공다국어 한국어 시간 제한메모리 제한제출정답맞힌 사람정답 비율 0.5 초 256 MB 67052 12207 8363 23.757% 문제 1742년, 독일의 아마추어 수학가 크리스티안 골드바흐는 레온하르트 오일러에게 다음과 같은 추측을 제안하는 편지를 보냈다. 4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다. 예를 들어 8은 3 + 5로 나타낼 수 있고, 3과 5는 모두 홀수인 소수이다. 또, 20 = 3 + 17 = 7 + 13, 42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23 이다. 이 추측은 아직도 해결되지 않은 문제이다. 백만 이하의 모든 짝수에 대해서, 이 추측을 검증하는 프로그램을 작성하시오. 입력 입력은 하나 또는 그 이상의 테스트 케.. 더보기
photogram 리팩토링 일기 오늘은 메인페이지에 자신이 구독을 한 사용자의 이미지와 댓글을 달 수 있게 할것이다. 리팩토링 하기전 서비스로직 @Transactional(readOnly = true) public Page imageStory(long principalId, Pageable pageable){ Page images = imageRepository.mStory(principalId,pageable); //images에 좋아요 상태 담기 images.forEach((image)-> { image.setLikeCount(image.getLikes().size()); image.getLikes().forEach((like)->{ if(like.getUser().getId() == principalId) { image.setLi.. 더보기
JPA에서 Entity에 protected 생성자를 만드는 이유. 엔티티에서 setter를 쓰는 것보다 생성자를 통해 파라미터를 넘기는 게 좋다. Setter를 무분별하게 남용하다 보면 여기저기서 객체(엔티티)의 값을 변경할 수 있으므로 객체의 일관성을 보장할 수 없기 때문. 그리고 setter는 그 의도를 알기 힘들기에 setter 사용을 자제해야한다. 그러므로 protect 생성자를 생성해서 아무데나 생성되는 걸 막는 게 좋다. (다른 사람이 쓰지 못하도록 제약한다.) 예시) Member member = new member (); member .setname("민우"); member .setname("하진"); 그러나 JPA 표준 스펙에 디폴트 생성자가 있어야하기에 private 생성자를 사용할 수 없다. 왜냐하면 jpa가 프록시 기술을 쓰는데 거기서 프록시 기술을.. 더보기
dfs - 알파벳 BackTracking 알파벳 실패다국어 한국어 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 256 MB 87690 28284 17236 29.133% 문제 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 지날 수 없다. 좌측 상단에서 시작해서, 말이 최대한 몇 칸을 지날 수 있는지를 구하는 프로그램을 작성하시오. 말이 지나는 칸은 좌측 상단의 칸도 포함된다. 입력 첫째 줄에 R과 C가 빈칸을 사이에 두고 .. 더보기