본문 바로가기

전체 글128

하노이의 탑 하노이 탑 알고리즘은 재귀함수의 대표적인 알고리즘 중 하나 동작방식 세 개의 기둥 중 하나의 기둥에 지름이 서로 다른 여러 개의 원판들이 크기순으로 쌓여 있음 이 원판들을 다른 기둥으로 옮기는 과정 규칙 한 번에 하나의 원판만 옮길 수 있음 큰 원판 위에 작은 원판을 올릴 수 없음 중간 단계로 사용할 수 있는 보조 기둥을 활용할 수 있음 동작방식 예시 n-1개의 원판을 보조 기둥으로 옮김 가장 큰 원판을 목표 기둥으로 옮김 보조 기둥에 있는 n-1개의 원판을 목표 기둥으로 옮김 하노이 예시 구현코드 public class HanoiTower { public static void main(String[] args) { int num = 3; solveHanoi(num, 'A', 'B', 'C'); } pu.. 2023. 8. 30.
Sevlet 1. 서블릿이란? 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술 2. jsp 호출 시 구동과정과 서블릿 생명주기 2-1. 구동과정에서 무엇을 통해 구동되는지 3. init() service() destroy()의 사용 용도 3-1. init() service() destroy()란? 4 HttpServletRequest, HttpServletResponse 객체란? 5. 쿠키와 세션의 개념과 사용 용도 2023. 8. 27.
Java 1. 인스턴스 변수, 전역 변수(클래스 변수), 지역 변수의 정의와 차이 # 클래스 변수와 인스턴스 변수는 멤버변수라고도 함 인스턴스 변수 객체지향 프로그래밍에서 사용 클래스 내부의 멤버 변수로 선언하여 사용 클래스의 생성자를 통해 초기화 되고 해당 클래스의 모든 인스턴스에서 사용가능 객체 생성 없이는 사용 불가능 각 인스턴스 마다 서로 다른 값을 가질 수 있음 인스턴스마다 독립적으로 존재하며 객체의 상태를 나타내는 데 사용 public class MyClass { int instanceVariable; // 인스턴스 변수 선언 public MyClass(int value) { instanceVariable = value; // 생성자를 통해 인스턴스 변수 초기화 } } 전역 변수(클래스 변수) java.. 2023. 8. 23.
[level 0] 컨트롤 제트 - 120853 Comments stac 메서드를 활용한 코드가 있어서 가져와봄 class Solution { public int solution(String s) { int answer = 0; Stack stack = new Stack(); for (String w : s.split(" ")) { if (w.equals("Z")) { stack.pop(); } else { stack.push(Integer.parseInt(w)); } } for (int i : stack) { answer += i; } return answer; } } 2023. 8. 16.
[level 0] 2차원으로 만들기 - 120842 Comments for문 1개로 구현하는 효율적인 코드가 있어서 가져와봄 class Solution { public int[][] solution(int[] num_list, int n) { int[][] answer = {}; int length = num_list.length; answer = new int[length/n][n]; for(int i=0; i 2023. 8. 16.
[level 0] A로 B 만들기 - 120886 [level 0] A로 B 만들기 Comments 나는 String을 char[]로 만들어서 정렬한 후 String으로 변환해 equals로 비교해서 문제를 풀었는데 아래 코드는 중복된 문자를 제거해서 문자열의 길이를 세는 방법으로 품 class Solution { public int solution(String before, String after) { for(int i = 0; i < before.length(); i++){ after = after.replaceFirst(before.substring(i,i+1),""); } return after.length() == 0? 1: 0; } } replaceFirst public String replaceFirst(String regex, String.. 2023. 8. 16.
Programmers [level 0] 최댓값 만들기 (2) - 120862 [level 0] 최댓값 만들기 (2) Comments Math.max를 잘 활용한 코드가 있어서 가져와봄 class Solution { public int solution(int[] numbers) { int answer = Integer.MIN_VALUE; for(int i = 0; i < numbers.length; i++){ for(int j = i + 1; j < numbers.length; j++){ answer = Math.max(answer, numbers[i] * numbers[j]); } } return answer; } } 코드가 간편해 보여서 가져왔으나 찾아보니 Math 매서드를 사용하면 무거운 연산이 된다고 함 2023. 8. 16.
Programmers [level 0] 카운트 다운 - 181899 [level 0] 카운트 다운 - 181899 문제 링크 성능 요약 메모리: 86.5 MB, 시간: 0.02 ms 구분 코딩테스트 연습 > 코딩 기초 트레이닝 문제 설명 정수 start와 end가 주어질 때, start에서 end까지 1씩 감소하는 수들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요. 제한사항 0 ≤ end ≤ start ≤ 50 입출력 예 start end result 10 3 [10, 9, 8, 7, 6, 5, 4, 3] 입출력 예 설명 입출력 예 #1 10부터 3까지 1씩 감소하는 수를 담은 리스트는 [10, 9, 8, 7, 6, 5, 4, 3]입니다. Comments IntStream의 range와 rangeClosed 차이점 IntStream.ran.. 2023. 8. 11.
Programmers [level 0] rny_string - 181863 [level 0] rny_string - 181863 문제 링크 성능 요약 메모리: 71.8 MB, 시간: 12.19 ms 구분 코딩테스트 연습 > 코딩 기초 트레이닝 문제 설명 'm'과 "rn"이 모양이 비슷하게 생긴 점을 활용해 문자열에 장난을 하려고 합니다. 문자열 rny_string이 주어질 때, rny_string의 모든 'm'을 "rn"으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요. 제한사항 1 ≤ rny_string의 길이 ≤ 100 rny_string은 영소문자로만 이루어져 있습니다. 입출력 예 rny_string result "masterpiece" "rnasterpiece" "programmers" "prograrnrners" "jerry" "jerry" ".. 2023. 8. 11.