본문 바로가기

전체 글

(201)
[JAVA 알고리즘]BAEKJOON 24390번 또 전자레인지야? 또 전자레인지야? 문제 설명 잇창명의 집에는 오래된 전자레인지가 있다. 백준 온라인 저지에서 문제를 너무 많이 푼 잇창명은 문득 이런 궁금증이 생기기 시작했다. 버튼을 최소 몇 번 눌러야 조리시간 2분을 맞출 수 있을까? 잇창명의 전자레인지에는 다음과 같이 버튼이 4개 있고, 각 버튼을 누르면 다음과 같이 작동한다. 초기 상태에는 조리시간이 0초이고, 조리 중이 아니며, 조리시작 버튼을 눌러야 조리가 시작된다. 10초: 조리시간이 10초 늘어난다. 1분: 조리시간이 1분(60초) 늘어난다. 10분: 조리시간이 10분(600초) 늘어난다. 조리시작 조리 중이 아닐 때: 조리가 시작된다. 만약에 조리시간이 0초였다면 30초로 늘어난다. 조리 중일 때: 조리시간이 30초 늘어난다. 모든 버튼은 조리 중인지의 ..
사이드 프로젝트 : 중고 거래 플랫폼 - 게시글 ERD Controller 구성 @RestController @RequestMapping("/api") @RequiredArgsConstructor public class BoardController { private final BoardService boardService; @PostMapping("/board") public BoardResponseDto createBoard(@RequestBody BoardRequestDto requestDto, @AuthenticationPrincipal UserDetailsImpl userDetails) { return boardService.createBoard(requestDto, userDetails.getUser()); } @GetMapping("/boa..
[JAVA 알고리즘]BAEKJOON 1897번 토달기 토달기 문제 설명 희현이는 원장선생님 말씀에 토를 다는 것을 몹시 좋아한다. 토를 단다는 것은 원장선생님께서 어떤 단어를 말씀하시면 그 단어의 맨 앞이나 중간, 혹은 맨 뒤에 한 글자를 끼워 넣어서 새로운 단어를 만드는 것으로, 버릇없는 행동과는 아무런 관계가 없는 순수한 단어 놀이이다. 희현이는 사전에 등재된 단어만을 사용한다. 사전은 d개의 단어로 구성되어 있으며, 각 단어는 80자 이내의 알파벳 소문자로만 이루어져 있다. 희현이는 원장선생님께서 어떤 단어를 말씀하셨을 때, 한 글자씩 토를 달아 사전에 등재된 단어를 계속 만들어 갈 경우, 가장 긴 단어를 만들려면 어떻게 해야 하는지가 궁금해졌다. 이를 해결하는 프로그램을 작성하라. 입력 첫 줄에 사전에 등재된 단어의 수 d와, 원장님이 처음 말씀하신..
[JAVA 알고리즘]BAEKJOON 2583번 영역 구하기 영역 구하기 문제 설명 눈금의 간격이 1인 M×N(M,N≤100)크기의 모눈종이가 있다. 이 모눈종이 위에 눈금에 맞추어 K개의 직사각형을 그릴 때, 이들 K개의 직사각형의 내부를 제외한 나머지 부분이 몇 개의 분리된 영역으로 나누어진다. 예를 들어 M=5, N=7 인 모눈종이 위에 과 같이 직사각형 3개를 그렸다면, 그 나머지 영역은 와 같이 3개의 분리된 영역으로 나누어지게 된다. 와 같이 분리된 세 영역의 넓이는 각각 1, 7, 13이 된다. M, N과 K 그리고 K개의 직사각형의 좌표가 주어질 때, K개의 직사각형 내부를 제외한 나머지 부분이 몇 개의 분리된 영역으로 나누어지는지, 그리고 분리된 각 영역의 넓이가 얼마인지를 구하여 이를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 M과 N, 그..
사이드 프로젝트 : 중고 거래 플랫폼 - 회원가입 , 로그인 구현 SpringSecurity를 의존성 주입하여 인증, 인가처리를 해주고 토큰을 쿠키에 넣어 인증처리를 한다. // Security implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-validation' // JWT compileOnly group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5' runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.5' runtimeOnly group: 'io.jso..
[JAVA 알고리즘]BAEKJOON 5014번 스타트링크 스타트링크 문제 설명 강호는 코딩 교육을 하는 스타트업 스타트링크에 지원했다. 오늘은 강호의 면접날이다. 하지만, 늦잠을 잔 강호는 스타트링크가 있는 건물에 늦게 도착하고 말았다. 스타트링크는 총 F층으로 이루어진 고층 건물에 사무실이 있고, 스타트링크가 있는 곳의 위치는 G층이다. 강호가 지금 있는 곳은 S층이고, 이제 엘리베이터를 타고 G층으로 이동하려고 한다. 보통 엘리베이터에는 어떤 층으로 이동할 수 있는 버튼이 있지만, 강호가 탄 엘리베이터는 버튼이 2개밖에 없다. U버튼은 위로 U층을 가는 버튼, D버튼은 아래로 D층을 가는 버튼이다. (만약, U층 위, 또는 D층 아래에 해당하는 층이 없을 때는, 엘리베이터는 움직이지 않는다) 강호가 G층에 도착하려면, 버튼을 적어도 몇 번 눌러야 하는지 구..
사이드 프로젝트 : 중고 거래 플랫폼 - 타임스탬프, MariaDB, 순환 참조 트러블 슈팅 타임스탬프의 데이터 입력이 안 되는 경우 @Getter // 부모 클래스로 선언해 상속 시켜 사용할 때 사용 @MappedSuperclass // JPA Entity에 이벤트가 발생할 관련 코드를 실행 @EntityListeners(AuditingEntityListener.class) public abstract class TimeStamp { @CreatedDate @Column(updatable = false) @Temporal(TemporalType.TIMESTAMP) private LocalDateTime created_at; @LastModifiedDate @Temporal(TemporalType.TIMESTAMP) private LocalDateTime updated_at; } 문..
사이드 프로젝트 : 중고 거래 플랫폼 - 엔티티 엔티티를 만들면서 ERD 설계 수정 및 관계 수정 유저와 즐겨찾기의 관계는 한 명의 유저에게 즐겨찾기 목록을 추가하는 부분을 즐겨찾기 그룹형식으로 들어가는 게 아닌 유저 한 명의 즐겨찾기로 들어는 걸로 계획을 하여 1대다의 관계에서 1대 1의 관계로 수정 즐겨찾기와 게시글의 관계는 유저 한명의 즐겨찾기에서 여러 개의 게시글을 가지고 하나의 게시글이 여러 명에게 즐겨찾기가 될 수 있으므로 다대 1의 관계가 아닌 다대다의 관계로 수정 즐겨찾기와 게시글의 다대다 관계 다대다 관계를 지양하는 편인데, 이유는 다양한 데이터가 들어갔을 경우 연관관계에 문제가 발생할 수 있다는 점과, 중간 테이블이 숨겨져 있어 예상하지 못한 쿼리들이 발생할 수 있기 때문이다. 다대다 문제를 극복하기 위해서 JPA를 이용해서 Many..