프로그래밍(101)
-
[Design Pattern] 팩토리 패턴 (Factory Pattern)
📚 팩토리 패턴은 왜 등장하게 됐을까? 예시) 1. 프레임워크를 개발하게 됐다. 데이터베이스는 MSSql, Oracle 을 지원하고 향후 다른 DB종류가 추가될 가능성이 있다. 2. MSSql, Oracle용 DB Helper클래스를 만들었다. 3. DB Helper를 사용하는 시점에 DB종류에 따라 MSSql이면 MSSql클래스 객체를, Oracle이면 Oracle클래스 객체를 생성해줬다. switch(DBType) { case("MSSQL") : ... = new SqlDBHelper(); break; case("ORACLE"): ... = new OracleDBHelper(); break; // DB 추가될 수 있음 } 위와 같이 객체를 생성해서 사용하고 있을 때 또다른 DB종류가 추가된다면 어떻게..
2021.02.15 -
[MSSQL] 정렬 조건없이 순번 매기는 방법
📚 조회된 순서대로 데이터 넘버링 해줄 때 -방법 1 -- 의미 없는 변수 DECLARE @row INT = 1 SELECT ROW_NUMBER() OVER(ORDER BY @row) FROM 테이블명 -방법 2 SELECT ROW_NUMBER () OVER(ORDER BY (SELECT 1)) FROM 테이블명
2021.01.27 -
[프로그래머스] [Level1] 제일 작은 수 제거하기 - Java
💁♀️ 링크 programmers.co.kr/learn/courses/30/lessons/12935 📃 문제 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 🐾 문제풀이 우선 제일 작은 수를 찾는다. 앞서 선언한 tempList에 제일 작은 수를 제외한 요소들을 추가한다. tempList 요소의 수가 0이면 -1을 채우고 리턴한다. 요소의 수가 0이 아니라면 tempList에 있는 요소들을 answer에 추가한다. 💻 코드 import java.util.*; ..
2021.01.08 -
[프로그래머스] [Level1] 자연수 뒤집어 배열로 만들기 - Java
💁♀️ 링크 programmers.co.kr/learn/courses/30/lessons/12932 📃 문제 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 🐾 문제풀이 💻 코드 class Solution { public int[] solution(long n) { int[] answer = new int[String.valueOf(n).length()]; StringBuffer sb = new StringBuffer(String.valueOf(n)); String str = sb.reverse().toString(); for(int i=0; i
2021.01.06 -
[프로그래머스] [Level1] 자릿수 더하기 - Java
💁♀️ 링크 programmers.co.kr/learn/courses/30/lessons/12931 📃 문제 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 🐾 문제풀이 타입변환 없이 풀어보기 1. n을 10으로 나눈 나머지를 누적하여 answer에 더해준다. 2. n의 값을 n/10의 값으로 대입한다. ex) 1234 % 10 = 4 n = 123 3. n이 0이 될때까지 반복한다. 💻 코드 public class Solution { public int solution(int n) { int answer = 0; while(n!=0) { answer += n%..
2021.01.06 -
[프로그래머스] [Level1] 이상한 문자 만들기 - Java
💁♀️ 링크 programmers.co.kr/learn/courses/30/lessons/12930 📃 문제 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입출력 예 s return try hello world TrY HeLlO WoRlD 🐾 문제풀이 1. StringTokenizer을 사용해 공백을 기준으로 문자열을 자른다. (3번째 ..
2021.01.05