전체 글 94

[프로그래머스/ 코딩테스트 연습문제] 최대공약수와 최소공배수

Q. 최대공약수와 최소공배수A.class Solution {//코드 재사용성을 위해 최대공약수와 최소공배수는 메서드를 따로 분리해봄    public int[] solution(int n, int m) {//두 수 중 큰값 = max, 두 수 중 작은 값= min        int max = Math.max(n,m);        int min = Math.min(n,m);        //GCD : 최대공약수를 계산하는 메서드 호출, LCM : 최소공배수를 계산하는 메서드 호출         int gcd = getGCD(max,min);        int lcm = getLCM(max,min,gcd);        //answer = [최대공약수, 최소공배수]를 리턴해야하니까 배열로 반환     ..

[TIL] 일정 관리 앱 만들기 & 기능 구현 develop

진행 날짜 : 2024.11.12 ~ 2024.11.15 프로젝트 요약 1. 프로젝트 목적일정관리 앱 개발을 통해, RESTful API 설계 및 JPA 기반 CRUD 구현(데이터베이스 관리), 데이터 검증, 인증 기능 학습Cookie/ Session 을 활용한 인증/인가 로직 학습과 데이터 유효성 검증데이터 검증 및 비지니스 로직 분리로 유지보수성 연습기본적인 보안 개념과 인증 매커니즘을 명확히 이해2. 프로젝트 구현 단계Lv0 : 프로젝트 설계API 명세서 작성 : postman 사용ERD 작성 SQL 작성 : root 경로에 schedule.sql 만들어서 작성Lv1 : 일정 CRUD일정 저장, 조회, 수정, 삭제 기능 구현일정 필드작성 유저명, 할일 제목, 할일 내용, 작성일, 수정일작성/수정일 ..

[프로그래머스/ 코딩테스트 연습문제] 직사각형 별 찍기

Q. 직사각형 별 찍기A.import java.util.Scanner;class Solution {    public static void main(String[] args) {//스캐너를 사용해서 사용자에게 값 입력받기        Scanner sc = new Scanner(System.in);        int n = sc.nextInt(); //가로 길이        int m = sc.nextInt(); //세로 길이//가로 n 세로 m 일때 반복하려면 이런 형식으로 반복되야함//세로가 0일때 가로 n 반복//세로가 1일때 가로 n 반복 ...//세로 반복문        for(int i=0; i//가로 반복문            for(int j=0; j//가로 반복이니까 줄바꿈 하면 안됨 ..

[프로그래머스/ 코딩테스트 연습문제] 행렬의 덧셈

Q. 행렬의 덧셈A.class Solution {    public int[][] solution(int[][] arr1, int[][] arr2) {//arr1과 arr2 두개의 배열 크기가 같으니까 answer 배열의 크기도 같게 만들어줘야함//[arr1.length] : 행의 길이(개수)//[arr1[0].length] : 열의 길이(개수)        int[][] answer = new int[arr1.length][arr1[0].length];        //i가 0부터 배열의 행의 길이만큼 1씩 증가하면서 answer에 값을 넣음        for(int i=0; i//j가 0부터 배열의 열의 개수만큼 1씩 증가하면서 answer에 값을 넣음            for(int j=0; j..

[프로그래머스/ 코딩테스트 연습문제] 문자열 다루기 기본

Q. 문자열 다루기 기본A.class Solution {    public boolean solution(String s) {        boolean answer = true;        //문자열의 길이 확인//문자열의 길이가 4 혹은 6이 아닌경우 false 반환        if(s.length() != 4 && s.length() !=6){            answer = false;        }        //문자열의 길이가 true일 경우 다음 조건문 실행//charAt을 사용하여 문자를 하나씩 검사        for(int i=0; i //문자열 s에서 i번째 문자를 가져와서 검사            char c = s.charAt(i);//c가 0보다 작고, 9보다 클 경우..

[프로그래머스/ 코딩테스트 위클리 챌린지] 부족한 금액 계산하기

Q. 부족한 금액 계산하기A.class Solution {    public long solution(int price, int money, int count) {        long answer = -1;//놀이기구를 탄 총 금액 : sum        long sum = 0;        //놀이기구를 탄 총 금액을 구하기 위해 for 문 사용//놀이기구 이용료 * 놀이기구를 이용한 횟수를 모두 더한 값 = 놀이기구를 탄 총 금액//1번 탔을 때부터 count번 탔을 때까지 i를 1씩 증가하면서 price와 곱해준 후에 sum에 값을 더해줌        for(int i=1; i            sum += price * i;        }        //만약 가진 금액이 놀이기구를 이용한 ..

[트러블 슈팅] Spring 일정 관리 앱 develop

- 어떤 현상을 발견했는가?1. deleteSchedule 반환 타입 오류 2. Entity 이름 중복 3. Auditing 설정 문제  이런 장애가 생길 수 있다는 것을 인지1. deleteSchedule 반환 타입 오류-deleteSchedule은 삭제 메소드이기 때문에 삭제만 수행하고 데이터를 반환하지 않아도 되는데 반환타입을 Schedule로 잘못 설정함. 2. Entity 이름 중복-Hibernate에서 @Entity를 사용할 때 클래스 이름이 중복되는 경우 두 entity를 동일한 이름의 테이블로 인식함.-이때, entityManagerFactory의 bean 생성 중 BeanCreationException이 발생.-애플리케이션 실행 실패 3. Auditing 설정 문제-Spring Data ..

[프로그래머스/ 코딩테스트 연습문제] 문자열 내림차순으로 배치하기

Q. 문자열 내림차순으로 배치하기A.import java.util.Arrays;import java.util.Collections;class Solution {    public String solution(String s) {//문자열을 배열로 변환//내림차순 Collections.reverseOrder를 사용하기 위해 래퍼클래스 배열로 생성        Character[] arr = new Character[s.length()];//for문을 사용해 배열에 문자를 하나씩 넣음        for(int i=0; i            arr[i] = s.charAt(i);        }        //배열 arr를 내림차순 정렬//대문자는 소문자보다 작은 것으로 간주//Collections.re..

[프로그래머스/ 코딩테스트 월간코드챌린지 시즌2] 약수의 개수와 덧셈

Q. 약수의 개수와 덧셈A.class Solution {    public int solution(int left, int right) {        int answer = 0;        //left에서 right 사이의 모든 수를 i에 대입해서 사용        for(int i=left; i//약수의 개수를 세야하니까 count를 선언해서 사용            int count = 0;            //약수 개수 구하기//1부터 i까지 1씩 증가하면서 나눠서 나머지가 0이면 약수//약수일 경우 count를 증가시킴            for(int j=1; j                if(i%j == 0){                    count++;              ..

[프로그래머스/ 코딩테스트 월간코드챌린지 시즌1] 내적

Q. 내적A.class Solution {    public int solution(int[] a, int[] b) {        int answer = 0;        //a와 b 배열의 요소를 순차적으로 불러와 곱한 후 그 값을 더하는 것이니까 for문 사용//배열은 0부터 시작하고 내적은 n-1까지 곱해야하니까//0 //i=0부터 n-1까지 1씩 증가하면서 각 배열의 값을 꺼내 곱한 후 answer에 값을 증가해주면 됨        for(int i=0; i            answer += a[i]*b[i];        }        return answer;    }}