2024/11 41

[프로그래머스/ 코딩테스트 월간코드챌린지 시즌1] 3진법 뒤집기

Q. 3진법 뒤집기A.class Solution {    public int solution(int n) {//3진법으로 변환한 것을 문자열로 저장하기 위해서 str 선언        String str = "";        //3진법 변환//3으로 나눈 나머지 값을 저장하면 자연스럽게 거꾸로 저장됨//나머지를 문자열로 추가한 후에 다시 n에 3을 나눠서 몫으로 만들어줌//n이 0이 되기전까지 반복 = 3진법으로 변환되면 종료        while (n != 0){            str += n % 3;            n /= 3;        }        //문자열 str을 3진법으로 해석하여 10진법으로 변환        int answer = Integer.parseInt(str,..

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

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 = [최대공약수, 최소공배수]를 리턴해야하니까 배열로 반환     ..

[내일배움캠프/백엔드] Spring 숙련 뉴스 피드 프로젝트 Lv0. API 명세 및 ERD 작성

프로젝트 필수 기능 가이드 *프로젝트 목표-Spring Boot 와 JPA를 활용한 기능 개발-사용자와 친구 관계를 기반으로 최신 뉴스피드 데이터를 제공하는 시스템 구현-회원가입, 로그인, 인증, 친구관리, 게시물 관리 등 CRUD가 포함된 뉴스피드 시스템 설계 및 구현  1. 프로필 관리-프로필 조회 기능다른 사용자의 프로필 조회 시, 민감한 정보는 표시되지 않음-프로필 수정 기능로그인한 사용자는 본인의 사용자 정보만 수정할 수 있음비밀번호 수정 조건비밀번호 수정시, 본인 확인을 위해 현재 비밀번호를 입력하여 올바른 경우에만 수정할 수 있음현재 비밀번호와 동일한 비밀번호로는 변경할 수 없음예외처리비밀번호 수정시, 본인 확인을 위해 입력한 현재 비밀번호가 일치하지 않은 경우비밀번호 형식이 올바르지 않은 ..

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

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

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

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..