Super Kawaii Cute Cat Kaoani
본문 바로가기

자바11

[백준] 17136번 색종이 붙이기 - JAVA ✍️풀이방식 1. 문제 분석 1이 있는 칸에만 색종이를 붙여야 하고 칸에 딱 맞게 붙여야 하는 것. 각 종류의 색종이를 5개씩 가지고 있기 때문에 한 종류 마다 5개까지 사용할 수 있다. 즉 전체 색종이 개수는 25개이다. 색종이를 붙일수 있는 경우의 수를 백트래킹 알고리즘을 이용하여 구하면 된다. 지금까지 연습했던 문제들 중에 가장 난이도가 높은 문제였던 것 같다... 2. 풀이 과정 1. 색종이를 붙일 수 있는 1번째 위치를 찾는다. 2. 탐색 위치는 왼쪽 위에서 시작하여 오른쪽으로 이동하고, 오른쪽 끝에 도달하면 한 줄 아래로내려가서 다시 왼쪽부터 이동하는 방식으로 진행한다. (가지치기를 극대화 하기 위해서 큰 색종이부터 탐색한다) 3. 현재 선택한 위치에 가지고 있는 색종이.. 2025. 9. 15.
[백준] 9663번 N-Queen 배치하기 - JAVA ✍️풀이방식 1. 문제 분석 N-queen은 전형적인 백트래킹으로 풀 수 있는 문제이다. 크기 N × N 체스판 위에 퀸 N개를 서로 공격하지 않게 놓는 문제. 체스에서 퀸은 가로, 세로, 대각선으로 움직일 수 있으므로 같은 행, 열, 대각선에는 퀸이 동시에 존재할 수 없음. 즉 같은 행에는 퀸이 1개만 존재할 수 있음. 모든 행에 퀸을 1개씩 배치해야 N개의 퀸이서로 공격하지 않도록 놓을 수 있다. 2. 풀이 과정 퀸을 한 행씩 배치하면서, 현재까지 놓은 퀸이 조건을 만족하지 않으면 즉시 가지치기(백트래킹) -> 탐색을 종료하고 이전 단계로 돌아간다. 마지막 행까지 퀸 배치 성공하면 경우의 수 +1, 백트래킹 전체를 종료하면 경우의 수를 출력한다. 맨 위 행부터 시작해 각 행마다 퀸을.. 2025. 9. 12.
[백준] 15649번 N과 M - JAVA ✍️풀이방식 1. 문제 분석 1부터 N까지 자수 중에서 중복 없이 M개를 고른 수열또한 수열은 사전 순으로 증가하는 순서, 즉 오름차순으로 정렬하여서 출력해야한다. 현재 수열에서 추가할 수 있는 자연수를 탐색, 자연수가 기존 수열에서 이미 사용한 수라면 해당 수를 선택한 탐색은 진행하지 않고 이전 단계로 돌아간다(가지지치기) 수열의 길이가 M이 될 때 수열의 정보를 출력한다 . 2. 풀이 과정 일단 작은 수 부터 탐색하도록 기준을 잡으면 오름차순 조건을 자연스럽게 만족할 수 있다. 가지치기 기준은 이미 수열에 포함한 수(중복 허용 x) 이전 단계로 돌아가는 로직은 재귀 함수 형태로 탐색하면 자연스럽게 구현된다. 🖥️문제풀이 import java.io.*;import java.util.*.. 2025. 9. 11.
[Spring Boot] 3주차 스터디 : 6장 AWS 서버 환경을 만들어보자 - AWS EC2 ✏️ 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 보면서 스터디 한 내용을 정리하였습니다 https://www.yes24.com/product/goods/83849117 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 예스24가장 빠르고 쉽게 웹 서비스의 모든 과정을 경험한다. 경험이 실력이 되는 순간!이 책은 제목 그대로 스프링 부트와 AWS로 웹 서비스를 구현한다. JPA와 JUnit 테스트, 그레이들, 머스테치, 스프링www.yes24.com   6장 AWS 서버 환경을 만들어보자  - AWS EC2   외부에서 본인이 만든 서비스에 접근하려면 24시간 작동하는 서버가 필수집에 PC를 구동시킨다호스팅 서비스 (CAFE 24, 코리아 호스팅 등) 을 이용한다클라우드 서비스(AWS, AZU.. 2025. 1. 24.
[Spring Boot] 3주차 스터디 : 5장 스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현하기 ✏️ 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 보면서 스터디 한 내용을 정리하였습니다  https://www.yes24.com/product/goods/83849117  스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 예스24가장 빠르고 쉽게 웹 서비스의 모든 과정을 경험한다. 경험이 실력이 되는 순간!이 책은 제목 그대로 스프링 부트와 AWS로 웹 서비스를 구현한다. JPA와 JUnit 테스트, 그레이들, 머스테치, 스프링www.yes24.com     5장 스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현하기   💜스프링 시큐리티와 스프링 시큐리티 Oauth2 클라이언트 💠스프링 시큐리티란?막강한 인증과 인가 기능을 가진 프레임워크스프링 기반의 애플리케이션에서는 보안을 위한.. 2025. 1. 24.
[Spring Boot] 1주차 스터디 : 2장 스프링 부트에서 테스트 코드를 작성하자 ✏️ 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 보면서 스터디 한 내용을 정리하였습니다     2장 스프링 부트에서 테스트 코드를 작성하자   💜테스트 코드 작성💠TDD테스트가 주도하는 개발테스트 코드를 먼저 작성하는 것부터 시작💠레드 그린 사이클항상 실패하는 테스트를 먼저 작성 (Red)테스트가 통과하는 프로덕션 코드를 작성 (Green)테스트가 통과하면 프로덕션 코드를 리팩토링(Refactor) 💠단위 테스트기능 단위의 테스트 코드를 작성하는 것 💠빠른 피드백코드를 작성하고프로그램 실행한 뒤Postman과 같은 API 테스트 도구로 HTTP 요청요청 결과를 System.out.println()으로 눈으로 검증결과가 다르면 다시 프로그램(Tomcat)을 중지하고 코드를 수정한다2~.. 2025. 1. 14.
[백준] 2743 단어 길이 재기 - JAVA ✍️풀이방식 String의 length 메소드를 사용해서 길이를 반환했다String 관련 메소드 🌟문자 추출 charAt()문자열 비교 equals()바이트 배열로 변환 getBytes()문자열 찾기 indexOf()문자열 길이 length()문자열 대치 replace()문자열 잘라내기 substring()알파벳 소대문자 변경 toLowerCase(), toUpperCase()문자열 앞뒤 공백 잘라내기 trim()문자열 변환 valueOf()      🖥️문제풀이  import java.util.*;import java.io.*;public class Main{ public static void main(String[] args)throws IOException { BufferedRead.. 2024. 11. 23.
[백준] 9086 문자열 - JAVA ✍️풀이방식  처음에 간단하게 while문을 사용하려고 했으나 java에서는 c++이나 다른 언어처럼 whle문안에 저런 식으로 쓰는 것이 안된다고 한다. (Java에서는 C나 C++처럼 T--을 boolean 조건으로 사용할 수 없다 )while(T--){ int i=0; String str = br.readLine(); name[i]=str.substring(0,1)+ str.substring(str.length()-1, str.length()); i++; }  String의 메소드 중 하나인 substring 함수를 사용해서 접근하였다. 또한 while문도 for문으로 변경해주었다.for(int i=0;i   🖥️문제풀이 impo.. 2024. 11. 20.
[JAVA] 자바 코딩 테스트 정리 * 인프런 강의를 보면서 정리 (내용 계속 추가 될 예정) 일반적으로 수행 시간은 1억 번의 연산을 1초의 시간으로 간주하여 예측한다 시간 복잡도 유형빅 오메가 : 최선일 때 연산 횟수를 나타낸 표기법 빅 세타: 보통일 때 연산 횟수를 나타낸 표기법 빅 오 : 최악일 대 연산 횟수를 나타낸 표기법 -> 코딩 테스트에서 선택하는 표기법 연산 횟수 계산 방법연산 횟수 = 알고리즘 시간 복잡도 * 데이터의 크기 시간 복잡도 도출 기준상수는 시간 복잡도 계산에서 제외한다가장 많이 중첩된 반복문의 수행 횟수가 시간 복잡도의 기준이 된다 시간 초과과 되었을 땐 내 로직이 효율적인 지 다시 점검해야한다 (1) 알맞은 알고리즘 선택 기준(2) 비효율적인 로직 찾아서 효율적으로 바꾸기 프로그램에.. 2024. 8. 28.