본문 바로가기

전체 글158

백준 20920 영단어 암기는 어려워 파이썬 https://www.acmicpc.net/problem/20920  문제핵심단어를 여러 개 입력받은 후 3가지 조건으로 정렬을 하면 되는 문제이다.1. 단어의 빈도수2. 단어의 길이3. 단어의 알파벳 사전순서 문제에서 다중조건의 정렬이 있다면 dictionary와 lambda를 이용해서 풀면 효과적이라는 것을 생각하자! 코드import sysinput = sys.stdin.readlineN, M = map(int, input().split())d = {}for _ in range(N): word = input().rstrip() if len(word)  여기서 x[1]은 dic에서 value인 단어빈도수이며, x[0]은 key인 단어 그 자체이다.따라서-x[1] : 단어 빈도수 순서 .. 2024. 8. 26.
백준 23971 ZOAC 4 파이썬 https://www.acmicpc.net/problem/23971 문제 풀이 (10분 소요)h,w,n,m = list(map(int,input().split()))c = (h+n)//(n+1)r = (w+m)//(m+1)print(c*r) 세로, 가로 줄은 서로 관계가 없기에 가로, 세로 각각 구해준 후 두 값을 곱해주는 방식으로 풀었다 풀이가 명확하면 매우 쉽지만 그렇지 않다면 조금 고민을 할 수도 있는 문제라고 생각한다 2024. 8. 26.
백준 10815 파이썬 (이진탐색, Binary Search) https://www.acmicpc.net/problem/10815 python의 in을 이용하여 풀려고 하면 시간초과가 나는 문제입니다. 문제에서 입력값이 "-10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다"라고 되어있기 때문에 이렇게 큰 수가 포함된 배열 문제는 이진탐색을 이용하면 좋습니다. 매 단계마다 범위를 절반으로 줄이기 때문입니다. 개념이진탐색(Binary Search)은 정렬된 배열이나 리스트에서 원하는 값을 효율적으로 찾는 알고리즘입니다. 이진탐색은 다음과 같은 방식으로 작동합니다:초기 설정: 배열의 시작 인덱스(left)와 끝 인덱스(right)를 설정합니다. 일반적으로 left는 0, right는 배열의 마지막 인덱스입니다.중간값 계산: 중간 인덱스(mid)를 .. 2024. 6. 14.
LMS Web 클론코딩 13 (이미지 업로드) 2024/02/04 이제 게시글에 이미지를 업로드하는 기능을 추가할 것이다. 이미지 업로드는 db에 이미지 원본을 넣어 저장을 하는 것이 아니라 이미지 데이터의 정보를 저장하고, 프로젝트에서 이미지를 필요로 할 때 DB에 저장된 이미지 데이터 정보(path, name, size 등)를 통해 가져온다. local서버에 이미지를 저장하는 방법도 있고, 다른 서버를 대여하여 올리는 방법도 있다. 대표적으로는 aws의 s3를 많이 사용한다. 일단 나는 이미지 업로드 기능 자체를 구현하는것이 목표였기에, 내 local에 이미지를 저장하는 방법으로 진행했다. 1. PostFile 도메인 생성, db table 생성하기 package com.example.myapp.domain; import lombok.Getter.. 2024. 2. 7.
LMS Web 클론코딩 12 (검색기능 구현, Date 나타내기) 2024/2/2 검색기능을 구현하기 위해 어떻게 구현할지에 대해서 생각을 먼저 해보았다. 일단 두 가지 방법을 생각해 봤는데 첫 번째는 검색어를 입력하면 화면 전체를 다시 불러와서 해당 검색어가 있는 post-list를 course페이지에서 보여주는 것이고, 두 번째는 ajax를 이용하여 비동기 방식으로 처리하여 바로 post-list를 보여주는 방법이다. 첫 번째 방법이 좀 더 쉬울 것 같아 일단 첫 번째 방법을 선택했다. 검색기능구현 1. Course 페이지 Search form action으로 감싸주어 search 버튼을 눌렀을 때, get요청이 lms/search-posts로 요청되도록 구현한다. 2. PostController @GetMapping("lms/search-posts") public.. 2024. 2. 2.
LMS Web 클론코딩 11 (이전, 다음 페이지 이동 버튼 구현) 2024.01.30 오늘은 글 상세 보기 페이지에서 다음 글로 넘어가는 버튼과 전 글로 넘어가는 버튼을 구현하는 방법을 알아보자. 다음, 이전 글이 있다면 버튼이 활성화되어있고 없다면 비활성화되도록 구현할 것이다. 1. 먼저 html에서 Prev 버튼과 Next버튼을 만들어준다. Next > Prev버튼과 Next버튼 각각 활성화 된 모습과 비활성화된 모습을 만들어 준다. 2. Service를 만들어준다. 나의 경우엔 PostService에서 post관련 service를 관리한다. private final PostRepository postRepository; @Autowired public PostService(PostRepository postRepository).. 2024. 1. 30.
LMS Web 클론코딩 10 (JDBC Template로 CRUD 구현하기 2) 2024.01.28 오늘은 수정기능을 추가했으며, 또 수정하기 페이지로 넘어갈 시 기존 데이터(제목, 내용)가 담겨있도록 구현을 했다. mapping 할 때 경로설정에서 자꾸 애를 먹어서 시간이 꽤 많이 들었다. 결국 이렇게 해줬는데 최선의 방법인지는 아직 잘 모르겠다. controller @PostMapping("/lms/editPost") public String editSavePost(@RequestParam Long id, @RequestParam String title, @RequestParam String content) { 일단 CRUD 기능은 완성했으니, 빠르게 수정하기 페이지 front 수정 후 검색 기능, 파일 업로드까지 구현할 예정이다. 또 이전에 배포도 간단하게 테스트 해보면 좋을 .. 2024. 1. 28.
코딩시간측정하는법 (WakaTime) 순공시간을 측정하듯이 순코(순코딩) 시간을 측정할 수는 없을까?라는 생각이 들었다면 WakaTime을 추천한다! 🚀 개발자의 생산성을 극대화하는 비밀 무기: WakaTime 개발자 여러분, 프로젝트에 얼마나 많은 시간을 투자했는지 궁금하신 적 있으신가요? 어떤 언어나 프레임워크에 가장 많은 시간을 할애했는지, 혹은 어떤 프로젝트가 당신의 시간을 가장 많이 잡아먹었는지 알고 싶으신가요? 여기, 그 모든 궁금증을 해결해 줄 매직 툴, WakaTime이 있습니다! 🌟 WakaTime: 그것이 무엇인가? WakaTime은 개발자의 코딩 시간을 자동으로 추적하고 분석하는 도구입니다. 이를 통해 어떤 프로젝트에 얼마나 시간을 쏟았는지, 어떤 언어와 도구를 주로 사용했는지 한눈에 파악할 수 있습니다. WakaTime.. 2024. 1. 26.
LMS Web 클론코딩 9 (JDBC Template로 CRUD 구현하기 1) 2024.01.26 오늘은 JDBC Template로 Create, Read 그리고 Delete를 구현했다. 먼저 JDBC로 구현 후 jpa로 구현할 예정이다. 아직은 style을 모두 입히지 않긴했지만, course페이지에서 제목을 누르면 아래와 같이 post/{id}로 페이지가 생성된다. 이 부분은 다음과 같이 설정할 수 있다. Title 일단 DB테이블에 저장되는 값은 id, content, title, date이다. 1차로 수정할 점은 date를 포맷에 맞춰 화면에 나오도록 하고, 사용자 정보를 추가하는 것이다. 한동안 계속 안되다가 오늘 시간을 많이 쓴만큼 기능이 동작했을 때 정말 기뻤다. 초반 이 부분만 잘 넘어가면 다른 기능 같은 경우는 금방 구현할 것이라고 생각하여 집중해서 빠르게 ver1.. 2024. 1. 26.