티스토리

아좌좌
검색하기

블로그 홈

아좌좌

kkanjun.tistory.com/m

파이탱!!!!!!!!

구독자
0
방명록 방문하기

주요 글 목록

  • [Programmers] 숫자 문자열과 영단어 아 미쳤다 substring으로 잘라서 for문 돌려가면서 난리부르스를 춰도 안되길래 너무 어렵다 생각했는데 이렇게 간단한 문제였다니 ㅠ replace !!!! 바보 class Solution { public int solution(String s) { String[] word = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; for(int i=0; i 공감수 0 댓글수 0 2023. 8. 30.
  • [Programmers] 최소직사각형 (완전탐색) 내 풀이 import java.util.*; class Solution { public int solution(int[][] sizes) { int maxW = 0; int maxH = 0; for(int i=0; i 공감수 0 댓글수 0 2023. 8. 28.
  • Spring Boot 3 + Spring Security 6 + Swagger 3 으로 기본 Rest API CRUD 구현하기 개발환경 Spring Boot 3.1.3 Spring Security 6.1.3 Swagger 3 Swagger 프론트 백 간 API를 사용할 때 문서로 작성해야 함 - API 문서 자동화 - 간편한 API 확인 1. Swagger 라이브러리 그새 또 버전이 업그레이드 돼서 이전 버전으로 하면 안됩디다.. https://springdoc.org/ OpenAPI 3 Library for spring-boot Library for OpenAPI 3 with spring boot projects. Is based on swagger-ui, to display the OpenAPI description.Generates automatically the OpenAPI file. springdoc.org maven.. 공감수 0 댓글수 0 2023. 8. 27.
  • [Programmers] 이상한 문자 만들기 문자 사이의 공백을 어떻게 처리해야 하나... * 내 풀이 -> 틀림 import java.util.*; class Solution { public String solution(String s) { StringBuilder sb = new StringBuilder(); String[] arr = s.trim().split(" "); for(String str : arr) { for(int i=0; i 공백 유지 String str = "수박:사과:배:메론:::"; // limit = 0 String[] arr = str.split(":");// {"수박", "사과", "배", "메론"} // limit > 0 String[] arr = str.split(":", 3);// {"수박", "사과", "배:메.. 공감수 0 댓글수 0 2023. 8. 26.
  • [Programmers] 3진법 뒤집기 내 풀이 StringBuilder로 reverse를 할까 했는데 StringBuilder Integer 왔다갔다 하면 속도가 느려질까봐 어케든 integer로만 풀려고 했음 import java.util.*; class Solution { public int solution(int n) { List list = new ArrayList(); int answer = 0; int j = 1; while(n > 0) { list.add(n%3); // {0, 0, 2, 1} n /= 3; } for(int i = list.size() - 1; i >= 0; i--) { answer += list.get(i) * j; j *= 3; } return answer; } } 다른 사람 풀이 깔끔하고 좋은데 속도가 느.. 공감수 0 댓글수 0 2023. 8. 25.
  • [Programmers] 같은 숫자는 싫어 - 여러 방법 뭔가 큐를 사용해야되는 건줄 알았는데 import java.util.*; public class Solution { public int[] solution(int []arr) { List list = new ArrayList(); Queue q = new LinkedList(); for(int n : arr) { q.offer(n); } int temp = q.poll(); list.add(temp); while(!q.isEmpty()) { int now = q.poll(); if (now != temp) { list.add(now); } temp = now; } return list.stream().mapToInt(i->i).toArray(); } } 일단 실패 스택 사용 import java.util.. 공감수 0 댓글수 0 2023. 8. 25.
  • [스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 5. 스프링 시큐리티, OAuth2.0, Thymeleaf로 소셜로그인 기능 구현하기 1. 구글 로그인 1) 구글 로그인 설정 https://darrenlog.tistory.com/38 [OAuth 2.0] 개념과 Google OAuth2.0 세팅부터 스프링부트로 구현-1 안녕하세요. 이번 게시글에서는 OAuth 2.0에 대한 간략한 개념과 스프링부트 환경에서 직접 구현해보는 단계까지 다뤄보도록 하겠습니다. OAuth, Open Authorization 정의 OAuth는 인터넷 사용자들이 비밀 darrenlog.tistory.com 2) application-oauth.properties 등록 spring.security.oauth2.client.registration.google.client-id=클라이언트 ID spring.security.oauth2.client.registratio.. 공감수 0 댓글수 0 2023. 8. 21.
  • [스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 4. 타임리프로 화면 구성하기 책은 머스테치로 했지만 나는 타임리프로 1. 템플릿 엔진 1) JSP (JavaServer Pages) 자바 기반의 서버 사이드 템플릿 엔진 자바 코드( ) + HTML 코드 혼합 서버 측에서 페이지 동적 생성 서버에서 자바코드로 문자열을 만든 뒤 HTML로 변환하여 브라우저로 전달 2) Thymeleaf 자바 기반의 서버 사이드 템플릿 엔진 HTML 문서 내에서 Thymeleaf 태그 사용 스프링 프레임워크와 통합이 잘 되어있음 HTML을 유효한 HTML로 유지하면서, 동시에 동적 페이지를 생성할 수 있음 (서버에서 페이지 동적 생성 + 서버가 없어도 브라우저에서 실행 가능) 3) React 클라이언트 템플릿 엔진 자바스크립트 프론트엔드 라이브러리 서버에서 벗어난, 브라우저에서 화면 생성 서버에서는 J.. 공감수 0 댓글수 0 2023. 8. 18.
  • [Programmers] 약수의 개수와 덧셈 * 내 풀이 class Solution { public int solution(int left, int right) { int sum = 0; for(int i=left; i 공감수 0 댓글수 0 2023. 8. 14.
  • [스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 3. 프로젝트에 Spring Data JPA 적용하기 요구사항 분석 * 게시판 기능 - 게시글 조회, 등록, 수정, 삭제 * 회원 기능 - 구글/네이버 로그인 - 로그인한 사용자 글 작성 권한 - 본인 작성 글에 대한 권한 관리 1. 의존성 등록 * build.gradle // spring data JPA implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // h2 데이터베이스 runtimeOnly 'com.h2database:h2' spring-boot-starter-data-jpa 스프링 부트용 Spring Data Jpa 추상화 라이브러리 스프링 부트 버전에 맞춰 자동으로 JPA 관련 라이브러리들의 버전 관리해줌 h2 인메모리 관계형 데이터베이스 별도의 설치 X, 프로젝트 의.. 공감수 0 댓글수 0 2023. 8. 11.
  • [Programmers] 제일 작은 수 제거하기 굉장히 쉬워보였는데 낑낑대다가 막판에 결국 참고했다 ; 인덱스까지 해놓고선 마지막 한줄 answer[index++] = arr[i]를 왜 생각을 못해냈지?? 대가리가 왤케 안돌아가는겨 import java.util.*; class Solution { public int[] solution(int[] arr) { int[] answer = new int[arr.length - 1]; int min = arr[0]; int index = 0; if (arr.length == 1) return new int[]{-1}; for(int i=0; i 배열의 각 요소를 개별적으로 처리 2. IntStream(arr) - 주어진 인수들을 가지고 int 형식의 스트림 생성 - int[] 배열 -> 배열 자체가 하나의 .. 공감수 0 댓글수 0 2023. 8. 10.
  • [백준 9656] 돌 게임2 (DP) import java.util.*; public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String answer = (n % 2 == 0) ? "SK" : "CY"; System.out.println(answer); } } 이게 되나 ? 하고 홀짝으로 나눠서 풀어봤는데 정답은 맞았지만 ... DP 연습해야지 import java.util.*; public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int n = sc.nextI.. 공감수 0 댓글수 0 2023. 8. 4.
  • [백준 9095] 1, 2, 3 더하기 (DP) DP 연습중 ... 접근을 거의 다 했는데 뒷심 부족인가... ㅠ 다해놓고 구현 못함 1을 만드는 경우 dp[1] = (1) -> 1개 2를 만드는 경우 dp[2] = (2), (1, 1) -> 2개 3을 만드는 경우 dp[3] = (3), (1, 1, 1), (1, 2), (2, 1) -> 4개 4를 만드는 경우 dp[4] 1, 1, 1, 1 1, 1, 2 1, 2, 1 1, 3 2, 1, 1 2, 2 3, 1 1 + 3 ( 앞이 1일 때, 3을 만드는 경우의 수 ) -> 4개 2 + 2 ( 앞이 2일 때, 2를 만드는 경우의 수 ) -> 2개 3 + 1 ( 앞이 3일 때, 1을 만드는 경우의 수 ) -> 1개 dp[n] = dp[n - 1] + dp[n - 2] + dp[n - 3] import ja.. 공감수 0 댓글수 0 2023. 8. 4.
  • [백준 2775] 부녀회장이 될테야 (DP) import java.util.*; import java.io.*; public class Main { public static void main(String args[]) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); int t = Integer.parseInt(bf.readLine()); for(int tc = 0; tc < t; tc++) { int k = Integer.parseInt(bf.readLine()); int n = Integer.parseInt(bf.readLine()); int[][] dp = new int[k + 1][n + 1]; for(int i=1; i 공감수 0 댓글수 0 2023. 8. 4.
  • [Programmers] 서울에서 김서방 찾기 (속도 줄이기) * 내 풀이 class Solution { public String solution(String[] seoul) { String answer = "김서방은 "; int x = 0; for(int i=0; i 공감수 0 댓글수 0 2023. 8. 3.
  • [Programmers] 두 정수 사이의 합 * 내 풀이 쉬운 문제였는데 더위 먹었나 별 희한하게도 풀었네 import java.util.*; class Solution { public long solution(int a, int b) { long answer = 0; if (a == b) return a; int min = Math.min(a, b); int max = Math.max(a, b); int[] arr = new int[max - min + 1]; for(int i=0; i 공감수 0 댓글수 0 2023. 8. 2.
  • [Programmers] 정수 내림차순으로 배치하기 * 내풀이 머리가 안돌아가서 굉장히 이상하게 풀었다 import java.util.*; class Solution { public long solution(long n) { String s = Long.toString(n); // "118372" int[] arr = new int[s.length()]; int max = 0; for(int i=0; i 공감수 0 댓글수 0 2023. 8. 1.
  • [스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 2. 테스트코드 작성하기 1. TDD와 단위 테스트 TDD (Test-Driven Development) : 테스트 주도 개발 테스트 코드를 먼저 작성 단위 테스트 기능 단위의 테스트 코드 작성 개발 단계 초기에 문제 발견 테스트 프레임워크 : xUnit 개발환경(x)에 따라 Unit 테스트를 도와주는 도구 (JUnit, DBUnit 등) 2. 메인 클래스 package com.example.studyspringbootwebservice; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class StudySpr.. 공감수 0 댓글수 0 2023. 8. 1.
  • [스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 1. 인텔리제이로 스프링 부트 시작하기 책은 스프링부트 2.1.7이고, 나는 스프링부트 3.0.5 버전 다른게 많아서 찾아가면서 하는중... 스프링 3.0 버전으로 이 책 실습하는 경우가 별로 없어서 이게 맞는지 잘 모르겠지만 일단 해봐야겠슴다 Windows 10 IntelliJ IDEA 2023.1.1 Java : 17 Spring Boot : 3.0.5 JUnit5 Gradle - Groovy 1. 프로젝트 생성 2. build.gradle 설정 plugins { id 'java' id 'org.springframework.boot' version '3.0.5' id 'io.spring.dependency-management' version '1.1.0' } group = 'com.example' version = '0.0.1-SNAPSH.. 공감수 0 댓글수 0 2023. 7. 31.
  • [Programmers] 문자열을 정수로 바꾸기 (부호 포함) class Solution { public int solution(String s) { return Integer.parseInt(s); } } class Solution { public int solution(String s) { int answer = 0; boolean sign = true; for(int i=0; i 공감수 0 댓글수 0 2023. 7. 31.
  • [Programmers] x만큼 간격이 있는 n개의 숫자 (Stream 사용) * 내 풀이 class Solution { public long[] solution(int x, int n) { long[] answer = new long[n]; answer[0] = x; for(int i = 1; i x+i).limit(n).toArray(); } } * Stream.iterate(초기값, 어떻게 변경될지).limit() i를.. 공감수 0 댓글수 0 2023. 7. 30.
  • [Programmers] 평균 구하기 (Stream) 정수 배열 arr의 평균 구하기 import java.util.*; class Solution { public double solution(int[] arr) { return Arrays.stream(arr).average().getAsDouble(); } } 공감수 0 댓글수 0 2023. 7. 30.
  • [Programmers] 경기도에 위치한 식품창고 목록 출력 (SQL) FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요. SELECT warehouse_id, warehouse_name, address, nvl(freezer_yn, 'N') as freezer_yn from food_warehouse where address like '경기도%' * like * nvl() 공감수 0 댓글수 0 2023. 7. 30.
  • [Programmers] 그룹별 조건에 맞는 목록 출력 (SQL) select m.member_name as member_name, r.review_text as review_text, to_char(r.review_date, 'YYYY-MM-DD') review_date from (select member_id, rank() over(order by count(review_id) desc) rank from rest_review group by member_id) c, member_profile m, rest_review r where c.rank = 1 and c.member_id = m.member_id and m.member_id = r.member_id order by review_date asc, review_text asc * rank 함수 * to_cha.. 공감수 0 댓글수 0 2023. 7. 30.
  • [Programmers] 상위 n개 레코드 (SQL) 동물 보호소에 가장 먼저 들어온 동물의 이름 조회 SELECT NAME FROM (SELECT * FROM ANIMAL_INS ORDER BY DATETIME) WHERE ROWNUM = 1 공감수 0 댓글수 0 2023. 7. 29.
  • [인프런/스프링DB 2편] 6. 스프링 트랜잭션 전파 (2) 1. 스프링 트랜잭션 전파 활용 비즈니스 요구사항 - 회원을 등록하고 조회한다. - 회원에 대한 변경 이력을 추적할 수 있도록 데이터 변경(등록) 이력을 DB LOG 테이블에 남긴다. 1-1. 객체 세팅 * Member package hello.springtx.propagation; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; import lombok.Getter; import lombok.Setter; @Entity @Getter @Setter public class Member { @Id @GeneratedValue private Long id; pri.. 공감수 0 댓글수 0 2023. 7. 28.
  • [Programmers] 구슬을 나누는 경우의 수 (팩토리얼 / 재귀함수X) class Solution { public int solution(int balls, int share) { return factorial(balls) / (factorial(balls - share) * factorial(share)); } private int factorial(int num) { if (num == 1) return 1; return num * factorial(num - 1); } } 팩토리얼 -> 재귀함수로 푸는 문제라 생각하고 아 문제 잘풀었다 하고 제출했는데 와다다 실패 -> 재귀 범위 넘어감 40 몇점 class Solution { public long solution(int balls, int share) { return factorial(balls) / (factoria.. 공감수 0 댓글수 0 2023. 7. 27.
  • [인프런/스프링DB 2편] 6. 스프링 트랜잭션 전파 (1) 1. 트랜잭션 기본 * 트랜잭션 관련 로그 logging.level.org.springframework.transaction.interceptor=TRACE logging.level.org.springframework.jdbc.datasource.DataSourceTransactionManager=DEBUG #JPA log logging.level.org.springframework.orm.jpa.JpaTransactionManager=DEBUG logging.level.org.hibernate.resource.transaction=DEBUG #JPA SQL logging.level.org.hibernate.SQL=DEBUG 1) 기본 커밋, 롤백 package hello.springtx.propagat.. 공감수 0 댓글수 0 2023. 7. 25.
  • [인프런/스프링 DB 2편] 5. 스프링 트랜잭션 📌 @Transactional 사용 -> 트랜잭션 프록시 적용 -> 트랜잭션 AOP 처리 1. 트랜잭션 적용 확인 1) build.gradle plugins { id 'java' id 'org.springframework.boot' version '3.1.1' id 'io.spring.dependency-management' version '1.1.0' } group = 'hello' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { impl.. 공감수 0 댓글수 0 2023. 7. 20.
  • [인프런/스프링 DB 2편] 4. 데이터 접근 기술 (6) SpringData JPA + Query DSL 1. 트레이드 오프 * 스프링 데이터 JPA를 사용할 때의 두가지 방법 1) 구조의 안정성 (DI, OCP를 지킴 -> 어댑터 도입) * Service Repository 인터페이스 구현체의 메소드 호출 * Repository 인터페이스 구현체 SpringDataJpa 의 메소드 호출 Service -> Repository 어댑터를 거쳐서 -> 스프링 데이터 JPA 의 메소드 사용 장점 : Service에서 의존하는 Repository 인터페이스를 유지, Service의 코드도 유지하면서 Repository의 구현체를 변경할 수 있음 (DI, OCP원칙) 단점 : 중간 어댑터 작성, 실제 코드까지 함께 유지보수해야 함 2) 구조의 단순성 + 개발의 편리성 (service에서 직접 호출) Service에서.. 공감수 0 댓글수 0 2023. 7. 18.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.