[백준 문제풀이] 20920 영단어 암기는 괴로워 - 파이썬
·
Algorithm
백준 20920: 영단어 암기는 괴로워 (Python)1. Lambda를 활용한 다중 조건 정렬이번 문제에서 가장 흥미로웠던 부분은 여러 조건을 동시에 고려해야 하는 정렬이었습니다. Python의 sorted() 함수와 lambda를 사용하면 이러한 다중 조건 정렬을 매우 우아하게 구현할 수 있습니다.sorted_words = sorted(word_count.keys(), key=lambda x: (-word_count[x], -len(x), x))이 한 줄의 코드는 다음 세 가지 조건을 순차적으로 적용합니다:단어 빈도수 내림차순 (-word_count[x])단어 길이 내림차순 (-len(x))알파벳 사전순 (x)여기서 주목할 점은 내림차순 정렬을 위해 마이너스(-)를 사용한 것입니다. 이는 Pyt..
[백준 문제풀이] 1764 듣보잡 - 파이썬
·
Algorithm/Baekjoon
백준 1764번 - 듣보잡 문제 풀이 및 최적화1. 문제 접근 방식처음에는 문제를 가장 직관적인 방식으로 접근했습니다. 두 개의 리스트를 만들어서 각각의 입력을 받고, 첫 번째 리스트의 각 요소가 두 번째 리스트에 있는지 확인하는 방식으로 구현했습니다.최초 작성 코드n, m = map(int, input().split())N = []M = []for _ in range(n): txt = input() N.append(txt)for _ in range(m): txt = input() M.append(txt)count = 0result = []for i in N : if i in M : count += 1 result.append(i)result.sort(..
[백준 문제풀이] 10798 세로읽기 - 파이썬
·
카테고리 없음
파이썬 알고리즘: 2차원 문자열 세로 읽기 문제 해결 방법 비교문제 소개주어진 문제는 5줄의 문자열을 입력받아 세로로 읽어 출력하는 문제입니다. 각 줄은 최소 1개, 최대 15개의 글자로 구성되어 있으며, 글자는 영어 대소문자와 숫자로 이루어져 있습니다.1. 이중 for문을 사용한 초기 접근 방식처음에 저는 가장 직관적인 방법인 이중 for문을 사용하여 문제를 해결했습니다.# 5줄 입력받기words = []for _ in range(5): words.append(input())# 가장 긴 문자열의 길이 찾기max_len = max(len(word) for word in words)# 세로로 읽기result = ''for i in range(max_len): # 각 열을 순회 for j in ..
레이캐스트 (Raycast) 사용기... 스팟라이트 알프레드는?
·
Mac
레이캐스트 사용 후기 - 맥 사용자의 생산성 도구 안녕하세요! 맥을 사용한지 2년 차가 된 주니어 개발자입니다. 오늘은 최근에 시작한 레이캐스트(Raycast) 사용 경험을 공유해보려고 합니다.  맥 사용자가 되기까지윈도우 PC를 사용할 때는 자주 사용하는 프로그램들을 바탕화면의 폴더별로 정리해두고 클릭으로 실행하는 방식을 주로 사용했었습니다. 하지만 맥으로 전환하고 나서 스팟라이트(Spotlight)의 매력에 푹 빠져버렸죠. 이제는 스팟라이트 없이는 컴퓨터를 사용할 수 없을 정도가 되어버렸습니다. 레이캐스트와의 만남얼마 전, 생산성을 극대화해준다는 알프레드(Alfred)와 레이캐스트(Raycast)라는 프로그램들을 알게 되었습니다. 여러 리뷰를 찾아보던 중 알프레드보다 레이캐스트를 추천하는 글을 보게 ..
Spring 웹 애플리케이션 마이그레이션: 파일 권한 문제 해결기
·
IT
Spring Boot 웹 애플리케이션 마이그레이션: 이미지 파일 권한 문제 해결기들어가며웹 애플리케이션 마이그레이션 작업 중 흔히 겪을 수 있지만, 원인을 파악하기 쉽지 않은 문제가 있습니다. 바로 파일 권한 문제입니다. 이번 글에서는 제가 최근 겪은 이미지 파일 접근 권한 문제와 그 해결 과정을 공유하고자 합니다.문제 상황기존 웹사이트의 데이터를 새로운 Spring Boot 애플리케이션으로 마이그레이션하는 작업을 진행했습니다. 데이터베이스 마이그레이션은 성공적으로 완료되었고, 게시글에 첨부된 이미지 파일들도 새 서버의 적절한 위치로 모두 복사했습니다.하지만 웹 애플리케이션을 실행하고 게시글을 열어보니 이미지가 전혀 표시되지 않는 문제가 발생했습니다. 개발자 도구로 확인해보니 이미지 요청에 대해 403 ..
2024/12 Today I Learned
·
Today I Learned
November 목표 :듣다 말았던 김영한님의 강의 'HTTP 기본' 완강마찬가지로 듣다 말았던 정수원님의 '스프링 시큐리티 완전 정복' 수강 (아직 초기이기 때문에 이번달안에 완강은 힘들 것 같다.)지난달 목표였던 'HTTP 기본'강의는 완강완료하였다.추가로 '350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법'을 들으며 앱개발에 괸심이 가게 되어 이것저것 둘러보는중이다.스프링 시큐리티는 회사에서 일하면서도 스프링을 만질일이 종종 있다보니 조금 뒤로 미루기로 하였다.December 목표 :'350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법' 완강예전부터 해보고싶었던 IOS개발을 위해 정말 간단한 Swift강의부터 조금씩 들을 예정이다.-> '개발하는 정대리 스위프트 기초 문법' 강의..
2024/11 Today I Learned
·
Today I Learned
국비 수료를 하고 인프런에서 김영한님의 스프링 강의 및 스프링 시큐리티 강의등을 들으며 매일 열심히 취업을 향해 달려가고 있었습니다. 이전 글의 Today I Learned가 더 이상 작성되지 않고 있는 것을 보셨다면 아시겠지만 잠시 개발 권태기가 왔던 것인지 그냥 놀고 싶었던 것인지 모르겠습니다. 몇달간 개인적인 공부를 하지 않고 있었네요... 허허 최근들어서 다시 개발에 대한 의욕도 올라오고 해서 다시금 블로그 작성을 통하여 자기계발을 노력해보려고 합니다.  November 목표 :1. 듣다 말았던 김영한님의 강의 'HTTP 기본' 완강2. 마찬가지로 듣다 말았던 정수원님의 '스프링 시큐리티 완전 정복' 수강 (아직 초기이기 때문에 이번달안에 완강은 힘들 것 같다.) November TIL :19일 ..
JPA를 활용한 성능 개선 경험 회고
·
Framework&Tools/Spring
최근 진행했던 프로젝트에서 데이터베이스 성능 문제를 해결하기 위한 여정을 공유해보고자 합니다. 프로젝트 초반에는 마이바티스(MyBatis)를 이용하여 다수의 테이블을 조인하며 데이터를 조회했지만, 성능 문제가 점점 심각해졌습니다. 프로젝트 진행 당시에는 팀원 모두가 JPA를 갑자기 학습할 수도 없으니 추후에 나 혼자 해당문제를 해결 해보자고 생각했습니다. 그래서 이후에, 이 문제를 개선하고자 JPA(Java Persistence API)를 도입했지만, 초반에는 n + 1 문제로 인해 큰 성능 개선을 이루지 못했습니다. 이 글에서는 문제 해결 과정과 그 결과를 상세히 다루어 보겠습니다. 문제 상황: 성능 저하프로젝트 초기에는 MyBatis를 사용하여 복잡한 쿼리를 작성했습니다. 하지만 여러 테이블을 조인하..