본문 바로가기

분류 전체보기115

프로그래머스 큰 수 만들기(그리디) 큰 수 만들기 ​ 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 1자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수 미만인 자연수입니다. 입출력 예 number k return 1924.. 2020. 5. 22.
프로그래머스 전화번호 목록(해시) import java.util.Arrays; class Solution { public boolean solution(String[] phone_book) { boolean answer = true; //전화번호가 저장된 배열 중에서 띄어쓰기를 기준으로 나눈다. //공백단위로 짜르기 for(int i = 0 ; i < phone_book.length;i++) { if(phone_book[i].contains(" ")) { phone_book[i] = phone_book[i].substring(0,phone_book[i].indexOf(" ")); }else { continue; } } // 짤랏으면 반복문을 통해 loop: for(int i = 0 ; i < phone_book.length;i++) { .. 2020. 5. 21.
AOP 관점 지향 프로그래밍 AOP(Aspect Oriented Programming) - 관점 지향 프로그래밍 ( OOP를 더 잘 구현할 수 있도록 도와주는 프로그램 ) 여러 객체에 공통적으로 적용할 수 있는 기능을 분리함으로써 재사용을 높여주는 프로그래밍 기법 - 사용 : 원래 업무들에서 공통된 업무들을 찾고 그 업무들을 AOP로 만들어 놓고 필요로 한 순 간에 사이사이로 끼워 넣기 AOP 종류 - before : 메소드 실행 전 실행 - after-returning : 메소드 실행 후 실행 - after-throwing : 메소드 실행 중 예외 발생시 - after : 메소드 실행 후 실행(예외 발생 여부 상관 없음) - around : 메소드 실행 전/후, 예외 발생 시 실행 AOP 지원 1) AspectJ : 1) 코드 적.. 2020. 5. 20.
프로그래머스 최댓값과 최솟값 문제 설명 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 1 2 3 4라면 1 4를 리턴하고, -1 -2 -3 -4라면 -4 -1을 리턴하면 됩니다. 제한 조건 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. sreturn 1 2 3 4 1 4 -1 -2 -3 -4 -4 -1 나의 풀이 문자열을 split 함수를 이용해 공백단위로 쪼개 String 형 배열에 저장하고 String 형의 배열을 Int 형 배열에 옮겨담아 정렬하여 맨앞의 수(제일작은수)를 앞에 마지막수(제일큰수)를뒤에 놓고 출력 import java.util.Arrays; .. 2020. 5. 19.
프로그래머스 피보나치 수 문제 설명 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 제한 사항 * n은 1이상, 100000이하인 자연수입니다. 입출력 예 nreturn 3 2 5 5 입출력 예 설명 피보나치수는 0번째부터 0, 1, 1, 2, 3, 5.. 2020. 5. 19.
자바 jdbc 스프링 DB 접근 mysql package spring_app12_conn; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class MysqlDAO implements DAO { private static Connection conn; final String DRIVER = "com.mysql.jdbc.Driver"; final String URL = "jdbc:mysql://localhost:3306/goott7?useSSL=false"; final String USER = "scott.. 2020. 5. 19.
DFS 와 BFS DFS - depth-first search 깊이 우선 탐색 트리나 그래프에서 한 루트로 탐색하다가 특정 상황에서 최대한 깊숙히 들어가서 확인한 뒤 다시 돌아가 다른 루트로 탐색하는 방식이다. 일반적으로 재귀호출을 사용하지만 스택으로 구현하기도 한다. 단순 검색 속도 자체는 BFS에 비해서 느리다. 장점 - 단지 현 경로상의 노드들만을 기얻하면 되므로 저장 공간의 수요가 비교적 적다. - 목표 노드가 깊은 단계에 있을 경우 해를 빨리 구할 수 있다. 단점 - 해가 없는 경로에 깊이 빠질 가능성이 있다. - 얻어진 해가 최단 경로가 된다는 보장이 없다. BFS - 넓이 우선 탐색 DFS는 갈림길에서 하나의 길로 들어서서 막다른 길이 나올 때까지 깊게 탐색을 하는 것을 볼 수 있고, BFS는 갈림길에 연결되.. 2020. 5. 18.
프로그래머스 타겟 넘버 깊이/너비 우선 탐색(DFS/BFS) 풀이법 n개의 음이 아닌 정수 숫자를 적절히 더하거나 빼야한다 처음에는 모든수를 검색해야 겠다는 생각은 했지만 DFS로 풀어야 겠다는 생각은 하지 못했다. DFS는 점화식과 종료시점을 찾는것에 매우 중요하다. N개의 수가 주어지므로 DFS 깊이우선탐색에서 깊이가 N인것을 알수 있다. 두가지 경우로 하나는 양수 하나는 음수로 하여 재귀함수를 구현하고 깊이가 주어진 배열의길이와 같아지면 종료하여 배열을 모두 더해 타겟과 같은지 비교하여 같으면 ANSWER를 증가시킨다 class Solution { static int answer = 0; public void dfs (int[] numbers, int target, int d) { if(d == numbers.length) { // 깊이가 배열의 길이와 같다.. 2020. 5. 18.
annotation 종류가 굉장히 많다. @Autowired - 필요한 곳에 자동으로 묶기 => xml에 새로운 bean 필요 => main에 factory도 바꿔주어야함 public static void main(String[] args) { //BeanFactory factory = //new XmlBeanFactory(new FileSystemResource("src/app.xml")); ApplicationContext context = new ClassPathXmlApplicationContext("app.xml"); Greetingimple gr = context.getBean("gi", Greetingimple.class); gr.printMsg(); } 의존 자동 설정 @AutoWired : 스프링전용 - 연.. 2020. 5. 18.