본문 바로가기

Java125

20230819 [Java] 문제풀이 20230819 [Java] 문제풀이 [프로그래머스] 할인 행사 HashMap에 원하는 제품과, 그 수량을 넣는다 그리고 10일 단위로, Discount를 순회하면서, HashMap에 있는 제품과 동일한 제품이 있으면 하나씩 빼준다 즉 10일 단위로 갱신이 될 때마다 새로운 HashMap을 가지고 와야 한다 그래서 copy 라는 메서드를 따로 만들었다 그렇게 10개를 모두 살 수 있으면 answer에다가 1을 누적시키면 된다 제발 문제를 잘 읽자!!!!!!! import java.util.*; class Solution { public static HashMap copy(HashMap list) { HashMap newList = new HashMap(); for (String key : list.key.. 2023. 8. 19.
20230817 [Java] 문제풀이 20230817 [Java] 문제풀이 [프로그래머스] 귤 고르기 해쉬맵으로 문제를 풀었다 해쉬맵에 귤 사이즈를 key, 사이즈에 대한 개수를 value로 넣었다 value기준으로 최소한의 종류를 구했다 (value를 배열에 넣고 내림차순으로 정렬했다) import java.util.*; class Solution { public int solution(int k, int[] tangerine) { int answer = 0; HashMap map = new HashMap(); ArrayList array = new ArrayList(); for (int num : tangerine) { if (map.containsKey(num)) { map.put(num, map.get(num) + 1); } else.. 2023. 8. 17.
스프링 스프링 출처 : 제로베이스 백엔드 스쿨 스프링 프레임워크란? 스프링 프레임워크는 자바 기반 오픈소스 웹 프레임워크다 엔터프라이즈급 어플리케이션, 즉 대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로 부터 행해지는 큰 규모의 환경에 사용할 수 있는 프레임워크다 정해진 틀에 맞춰서, 개발을 하는 것이다 (틀에 내가 개발한 클래스를 넣기만 하면 된다) 어느정도 맞춰진 틀이 있어서, 자유도는 떨어지지만, 개발하기 편하다 스프링 Bean이라는 규격에 맞춰 만들면 서로가 서로를 가져다 쓰기가 좋다 OOP (객체지향 프로그래밍) 컴퓨터는 주로 순서대로 코드를 읽는다 그 코드가 한 두줄이면 보기 편하지만, 만줄, 그 이상의 코드가 있으면 사람이 읽기 매우 불편하다 객체지향 프로그램을 통해서 분류 그리고 교체를 할 .. 2023. 8. 14.
[Java] Open API와 JSON 활용하기 [Java] Open API와 JSON 활용하기 서울 공공 WIFI Open API 가져오기 https://data.seoul.go.kr/dataList/OA-20883/S/1/datasetView.do 위 주소를 통해서 API를 사용하기 위한 key와 사용법에 대해 읽는다 Open API 사용하기 PDF 파일에는 프로그래밍 언어마다 API를 사용하는 코드가 다 나와 있어서, 복사 붙여 넣기만 하면 된다 JSON 활용하기 JSON 라이브러리를 다운로드 받는다 https://code.google.com/archive/p/json-simple/downloads File -> Project Stucture -> Dependencies -> + -> 라이브러리 선택 코드 package test; import o.. 2023. 8. 7.
20230804 [Java] 문제풀이 20230804 [Java] 문제풀이 [프로그래머스] 무인도 여행 DFS만 잘 구현하면 쉽게 풀 수 있는 내용이었다 일단 방문처리를 하면서 섬을 탐색하면서 count에다가 maps에 있는 숫자들을 더해주면 된다 import java.util.*; class Solution { public static int[] dr = {-1, 0, 0, 1}; public static int[] dc = {0, -1, 1, 0}; public static String[][] realMap; public static int[][] visited; public static int count; public static int dfs(int row, int column) { for (int i = 0; i < 4; i++) .. 2023. 8. 4.
20230803 [Java] 문제풀이 20230803 [Java] 문제풀이 [프로그래머스] 호텔 대실 정렬과 우선순위큐를 사용하였다 일단 Book이라는 클래스 안에 시작 시간과 끝나는 시간을 넣어 객체를 만들었다 여기서 시작 시간과 끝나는 시간은 시를 60을 곱해서 분으로 만들어서, 나머지 분과 더했다 끝나는 시간 같은 경우 10분을 더해서 청소 시간까지 더했다 일단 시작 시간을 기준으로 정렬을 했다 rooms라는 우선순위큐를 만들었다 이 우선순위큐는 객실 중에서, 제일 먼저 사용이 가능한 객실을 제일 앞으로 올 수 있도록 만들었다 그 뜻은 finish 시간이 제일 적은 Book 객체가 제일 앞으로 오는 것이다 만약에 제일 먼저 끝나는 방의 시간보다 다음 예약 시간이 빠를 경우에는, 다음 예약을 rooms에 넣었다 다음 예약자는 새로운 방을.. 2023. 8. 3.
20230802 [Java] 문제풀이 20230802 [Java] 문제풀이 [프로그래머스] 미로 탈출 start에서 lever로 갈 수 있는 최단 거리 lever에서 exit로 갈 수 있는 최단 거리를 구하는 것이다 즉 bfs를 두번을 해야 하며, 하나라도 -1이 나오면 start에서 lever을 거쳐서 exit로 못 가는 것이다 -1은 길이 없다는 뜻 import java.util.*; class Solution { public static int count = 0; public static int[][] dr = {{-1, 0}, {0, -1}, {0, 1}, {1, 0}}; public static int bfs(String[] maps, int[] start, int[] finish) { Queue queue = new LinkedL.. 2023. 8. 2.
20230801 [Java] 문제풀이 20230801 [Java] 문제풀이 [프로그래머스] 리코쳇 로봇 동, 서, 남, 북 으로만 움직일 수 있고, 한 방향으로 움직이기 시작하면 게임판 내 또는 "D"를 마주할때까지 앞으로 움직인다 그렇게 움직임을 세면서 제일 적은 횟수로 "G"까지 도달할 수 있도록 구현을 하는 문제이다 BFS로 구현을 했다 import java.util.*; class Solution { public int solution(String[] board) { String[][] newBoard = new String[board.length][board[0].length()]; int[][] visited = new int[board.length][board[0].length()]; int[] dr = {-1, 0, 0, 1}.. 2023. 8. 1.
20230731 [Java] 문제풀이 20230731 [Java] 문제풀이 [프로그래머스] 과제 진행하기 하면서 혼자서 디버깅을 계속 하다가, 왜 에러가 뜨는지 찾을 수 있었다 값을 출력하면서 디버깅 계속하는 습관 들이기!!! 일단 시작 시간을 시:분 에서 분으로 만들어 놓는다 그리고 다음 과제를 시작할 때에, 현재 과제를 못 끝내면, 현재 과제를 스택에 넣는다 그리고 만약 다음 과제를 끝내기 전에 현재 과제를 끝냈으면 스택에 넣지 않는다 대신 다음 과제를 시작하기 전에 시간이 남고, 스택에 과제가 있으면, 그 과제를 진행한다 계속 틀렸던 부분은 while문에서 스택에서 과제를 꺼냈는, 다음 과제를 시작하기 전에 못 끝냈을 때 (else부분)에 break를 넣지 않아서 계속 틀렸다 import java.util.*; class Homewor.. 2023. 7. 31.