본문 바로가기
반응형

SeongbinDB's IT Blog181

[백준 2503] 숫자야구 (자바) 백준 2503번: 숫자야구문제 설명숫자야구 게임은 상대방의 숫자를 맞추는 게임입니다. 상대방은 1부터 9까지 서로 다른 세 숫자를 정하고, 우리는 그 숫자를 맞추기 위해 시도합니다. 각 시도마다 다음과 같은 정보를 받습니다:스트라이크: 자리와 숫자가 모두 맞는 경우볼: 숫자는 맞지만 자리가 틀린 경우주어진 시도와 결과를 바탕으로 가능한 모든 경우의 수를 계산하는 문제입니다.문제 접근 방법1부터 9까지의 숫자 중 세 개를 중복 없이 선택합니다.각 선택된 숫자가 주어진 조건을 만족하는지 확인합니다.모든 조건을 만족하는 숫자 조합의 수를 계산합니다.시간 복잡도 분석O(N * 504)이 문제는 1부터 9까지의 숫자 중 세 개를 중복 없이 선택하는 모든 경우를 확인해야 합니다. 따라서 가능한 조합의 수는 9P3 .. 2024. 6. 29.
[백준 19532] 수학은 비대면 강의입니다. BOJ 19532: 수학은 비대면강의입니다 - 풀이문제 설명백준 온라인 저지의 문제 19532번 "수학은 비대면강의입니다"는 연립방정식을 푸는 문제입니다. 두 개의 1차 방정식이 주어졌을 때, 그 해를 구하는 문제입니다.주어진 방정식은 다음과 같습니다:( ax + by = c )( dx + ey = f )여기서 ( a, b, c, d, e, f )는 정수로 주어집니다. 우리는 이 방정식을 만족하는 ( x )와 ( y )를 찾아야 합니다. 모든 입력값은 -999부터 999 사이의 정수입니다.문제 접근 방법이 문제는 두 개의 1차 방정식을 만족하는 ( x )와 ( y )를 찾는 문제입니다. 이를 위해 이중 반복문을 사용하여 가능한 모든 ( x )와 ( y ) 값을 대입하여 해를 찾는 방식으로 접근할 수 있습.. 2024. 4. 21.
[백준 14568] 2017_연세대학교_프로그래밍_경시대회 (자바) package week_01; import java.io.*; public class BOJ_14568_2017_연세대학교_프로그래밍_경시대회 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int answer = 0; for (int a = 1; a < n + 1; a++) { for (int b = 1; b < n + 1; b++) { for (int c = 1; c < n + 1; c++) { if (a + b + c == n && a.. 2024. 4. 11.
[백준 1816] 암호키 (자바) package week_01; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BOJ_1816_암호_키 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); // 테스트 케이스의 수 입력 long[] S = new long[n]; // 테스트 케이스의 암호를 저장할 배열 생성 // 암호들을 배열에 저장 fo.. 2024. 4. 7.
DTO 의 사용범위 https://tecoble.techcourse.co.kr/post/2021-04-25-dto-layer-scope/ 2023. 3. 4.
[Java] Java enum 활용 https://techblog.woowahan.com/2527/ 2022. 7. 17.
일급 컬렉션 (First Class Collection) https://jojoldu.tistory.com/412 2022. 7. 17.
객체지향 생활체조 원칙 9가지 (from 소트웍스 엔솔러지) 한 메서드에 오직 한 단계의 들여쓰기만 한다. else 예약어는 쓰지 않는다. 모든 원시값과 문자열을 포장한다. 일급(first-class) 컬렉션을 쓴다. 한 줄에 점을 하나만 찍는다. 줄여쓰지 않는다(축약 금지). 모든 엔티티(entity)를 작게 유지한다. 2개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다. getter, setter, property를 쓰지 않는다. +상태와 행위를 한 곳에서 관리하자. 참조: https://limdingdong.tistory.com/7 2022. 7. 17.
2021년 회고 - 비전공자 자바 백엔드 개발자 2021년이지나고 2022년이 되었다. 아직 음력으로는 2022년이 아니다! 2021년 회고를 할 수 있는 그럴듯한 핑계를 댈 수 있는 마지막 날이 되었다. 더 늦기전에 2021년 회고를 해보려고 한다. (2022년 목표를 함께 작성할 지 따로 작성할지는 아직 고민이다) 2021년 타임라인을 정리해 보자면 다음과 같다. SI 회사 근무 (2020.05.10 ~ 2021.02.15) 백수 (2021.02.16 ~ 2021.07.31) 항해99(부트캠프) 유투브 취업활동 취업 이후 (2021.0.08.01 ~ 현재) 회고인 만큼 퇴사를 하게 된 이유 부터 현재까지 시간까지 작성을 해보려고 한다. 1. 퇴사를 하기까지 누구나 그럴듯한 계획은 있다. 나 역시도 그러했다. 어느정도 규모있는 SI 회사였고 커머스 .. 2022. 1. 31.
[프로그래머스] 게임 맵 최단거리(level2) (자바) package com.programmers; import java.util.LinkedList; import java.util.Queue; /** * https://programmers.co.kr/learn/courses/30/lessons/1844?language=java * 방문 처리를 해버리면 다른 루트에서 접근할 때 도착하지를 못한다. bfs일 경우 최단 거리로 갈 수 있기 때문에 방문처리를 false로 바꿀 일이 필요 없다. */ public class 게임맵_최단거리 { public static void main(String[] args) { int[][] maps = { {1, 0, 1, 1, 1}, {1, 0, 1, 0, 1}, {1, 0, 1, 1, 1}, {1, 1, 1, 0, 1}, .. 2021. 11. 14.
[프로그래머스] N개의 최소공배수 (자바) 문제 풀이 유클리드호제(최대공약수) 알고리즘을 활용하여 풀 수 있다. package com.programmers; /* 문제 설명 두 수의 최소공배수(Least Commontem Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요. 제한 사항 arr은 길이 1이상, 15이하인 배열입니다. arr의 원소는 100 이하인 자연수입니다. 입출력 예 arr result [2,6,8,14] 168 [1,2.. 2021. 10. 17.
[프로그래머스] 큰 수 만들기 (level2) (자바) 문제 풀이 문제를 잘 파악하는 것이 중요하다. 힙소트(오답) -> 조합(시간초과) -> 풀이(그리디)를 보고 문제를 풀 수 있었다. package com.programmers; import java.util.PriorityQueue; import java.util.Queue; /** * 문제 설명 * 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. * * 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. * * 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들.. 2021. 10. 17.
[DB] 인덱스란? 1. 인덱스란? 데이터 행의 검색 속도를 향상시키기 위해서 사용되는 데이터베이스 객체다 인덱스는 테이블과 독립적으로 존재한다 2. 인덱스가 왜 필요할까? Full Table Scan 대용량 데이터에 조회 비효율적이다. Index Range scan 인덱스 설정 할 시에 조회 성능이 좋아진다 10만건 기준 5.62s -> 0.01s 3. 인덱스의 구조와 원리 B+-Tree 인덱스 구조를 가진다. 4. 인덱스를 언제 쓰는 게 좋을까? where 절이나 조인조건에 자주 사용되는 경우 컬럼이 매우 다양한 값을 포함하고 있는 경우 (남녀 이런건 별로) 데이터가 아주 많은 테이블을 대상으로 조회작업을 했을 때 대부분의 조회작업에서= 검색되는 행이 전체 데이터의 10%미만인 경우 인덱스 생성이 필요하지 않는 경우 테.. 2021. 9. 5.
비전공자의 신입 백엔드(스프링) 개발자 취업후기 오랜만에 블로그를 작성한다. 국비지원 교육을 통해 SI회사에 취업하였고 근 1년동안 일하면서 자체적인 서비스를 가진 회사에 대한 마음이 커져갔었다. 퇴사를 결심하던 때에 항해99라는 부트캠프를 보게 되었고 3월부터 6월까지 항해99 부트캠프를 이수하였다.그리고 나서 지금 항해99 부트캠프 과정을 수료한지 1달 반 정도가 되었다. 금방 취업할 것만 같았지만 생각보다 취업시장의 문턱은 높았다. 운이 좋게도 내가 가고 싶었던 스타트업에 괜찮은 처우로 입사하게 되었다. 취업시장에 뛰어든 나는 아래와 같은 스펙을 갖고 있었다. 스펙 아주대 경영학 전공, 국제통상학 복수전공 국비지원교육 수료, 부트캠프 수료(항해99) SI 회사 근무 (10개월) IT관련 자격 정보처리기사 리눅스마스터 2급 영어 자격 OPIC IM.. 2021. 7. 28.
[JPA] N+1 문제 개념, 원인, 해결방안 [JPA] N+1 문제 ,개념, 원인 해결(@EntityGraph, Fetch) 관계를 갖고 있는 엔티티안에서 조회시에 발생할 수 있는 문제 1개의 쿼리를 원했지만 추가적으로 N번의 쿼리가 더 발생한다. @EntityGraph, Fetch 연관된 엔티티들을 SQL 한번에 조회하는 방법 Member N : 1 Team Member.class @ManyToOne Team team 실무에서는 지연로딩(FetchType.LAZY)을 사용하자 Team.class @OneToMay List members OneToMany는 Default가 Lazy전략이다 지연로딩 (LazyLoading) Member 조회시 Team은 각자객체로 조회해놓고 team을 사용하는 시점에 SQL이 별도로 날라간다. 설명 구현코드 //To.. 2021. 7. 13.
반응형