본문 바로가기
728x90

전체 글520

뉴스 클러스터링 (자바) package prog; import java.util.HashMap; public class 뉴스클러스터링 { public static void main(String[] args) { Solution_뉴스클러스터링 s = new Solution_뉴스클러스터링(); System.out.println(s.solution("FRANCE","french")); } } class Solution_뉴스클러스터링{ public int solution(String str1, String str2) { int answer = 0; HashMap map1 = new HashMap(); HashMap map2 = new HashMap(); makeMultiMap(map1,str1); makeMultiMap(map2,str.. 2021. 9. 12.
표편집 (자바) package prog; import java.util.Arrays; import java.util.LinkedList; import java.util.Stack; public class 표편집 { public static void main(String[] args) { Solution_표편집 s= new Solution_표편집(); System.out.println(s.solution(8,2,new String[] {"D 2","C","U 3","C","D 4","C","U 2","Z","Z"})); System.out.println(s.solution(8,2,new String[] {"D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"})); } } clas.. 2021. 9. 12.
타임리프 URL 링크 컨트롤러 @GetMapping("link") public String link(Model model) { model.addAttribute("param1", "data1"); model.addAttribute("param2", "data2"); return "basic/link"; } HTML URL 링크 basic url hello query param path variable path variable + query parameter 2021. 9. 11.
타임리프 유틸리티 객체와 날짜 타임리프 유틸리티 객체들 #message : 메시지, 국제화 처리 #uris : URI 이스케이프 지원 #dates : java.util.Date 서식 지원 #calendars : java.util.Calendar 서식 지원 #temporals : 자바8 날짜 서식 지원 #numbers : 숫자 서식 지원 #strings : 문자 관련 편의 기능 #objects : 객체 관련 기능 제공 #bools : boolean 관련 기능 제공 #arrays : 배열 관련 기능 제공 #lists , #sets , #maps : 컬렉션 관련 기능 제공 #ids : 아이디 처리 관련 기능 제공 컨트롤러 @GetMapping("/date") public String date(Model model) { model.addAt.. 2021. 9. 11.
타임리프 기본객체(session, request, response) 및 스프링 빈 조회 컨트롤러 @Controller @RequestMapping("/basic") public class BasicController { @GetMapping("/basic-objects") public String basicObjects(HttpSession session) { session.setAttribute("sessionData","hello Session"); return "basic/basic-objects"; } @Component("helloBean") static class HelloBean{ public String hello(String data){ return "Hello " + data; } } } HTML 식 기본 객체 (Expression Basic Objects) request.. 2021. 9. 11.
타임리프 SpringEL, 지역변수 컨트롤러 @Controller @RequestMapping("/basic") public class BasicController { @GetMapping("/variable") public String varible(Model model) { User userA = new User("userA", 10); User userB = new User("userB", 10); List list = new ArrayList(); list.add(userA); list.add(userB); Map map = new HashMap(); map.put("userA", userA); map.put("userB", userB); model.addAttribute("user", userA); model.addAttribut.. 2021. 9. 11.
타임리프 text, utext 컨트롤러 데이터 전송 @Controller @RequestMapping("/basic") public class BasicController { @GetMapping("text-unescaped") public String textUnescaped(Model model) { model.addAttribute("data", "Hello Spring!"); return "basic/text-unescaped"; } } HTML text vs utext th:text = th:utext = [[...]] vs [(...)] [[...]] = [[${data}]] [(...)] = [(${data})] 2021. 9. 11.
스프링 리다이렉트 컨트롤러에서 리다이렉트 사용시 참고 // @PostMapping("/add") public String addItemV5(Item item){ itemRepository.save(item); // 이렇게 사용하면 한글같은 경우 인코딩이 되지 않음 return "redirect:/basic/items/"+item.getId(); } @PostMapping("/add") public String addItemV6(Item item , RedirectAttributes redirectAttributes){ Item savedItem = itemRepository.save(item); redirectAttributes.addAttribute("itemId", savedItem.getId()); redirectA.. 2021. 9. 11.
스프링 HTTP 응답 (HTTP API, 메시지 바디에 직접 입력) import hello.springmvc.basic.HelloData; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus;.. 2021. 9. 10.
스프링 정적 리소스, 뷰 템플릿 정적 리소스 스프링 부트는 클래스패스의 다음 디렉토리에 있는 정적 리소스를 제공한다. /static , /public , /resources , /META-INF/resources src/main/resources 는 리소스를 보관하는 곳이고, 또 클래스패스의 시작 경로이다. 따라서 다음 디렉토리에 리소스를 넣어두면 스프링 부트가 정적 리소스로 서비스를 제공한다. 뷰 템플릿 스프링 부트는 기본 뷰 템플릿 경로를 제공한다. src/main/resources/templates import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotati.. 2021. 9. 10.
HTTP 요청 메시지 (JSON) import com.fasterxml.jackson.databind.ObjectMapper; import hello.springmvc.basic.HelloData; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpEntity; import org.springframework.stereotype.Controller; import org.springframework.util.StreamUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.sp.. 2021. 9. 10.
짝지어 제거하기 (자바) package prog; import java.util.Stack; public class 짝지어_제거하기 { public static void main(String[] args) { Solution_짝지어_제거하기 s = new Solution_짝지어_제거하기(); System.out.println(s.solution("baabaa")); System.out.println(s.solution("cdcd")); } } class Solution_짝지어_제거하기 { public int solution(String s) { int answer = -1; Stack stack = new Stack(); for (char c : s.toCharArray()) { if(stack.isEmpty()){ stack... 2021. 9. 9.
HTTP 요청 메시지 (단순 텍스트) import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpEntity; import org.springframework.stereotype.Controller; import org.springframework.util.StreamUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.ServletInputStream; imp.. 2021. 9. 9.
스프링 HTTP 요청 파라미터 - @ModelAttribute import hello.springmvc.basic.HelloData; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http... 2021. 9. 9.
스프링 HTTP 요청 파라미터 - @RequestParam import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import j.. 2021. 9. 9.
스프링 HTTP 헤더 조회 import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpMethod; import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.. 2021. 9. 9.
스프링 API 개발 기초 @RestController @RequestMapping("/mapping/users") public class MappingClassController { @GetMapping public String user(){ return "get users"; } @PostMapping public String addUser(){ return "post user"; } @GetMapping("/{userId}") public String findUser(@PathVariable String userId) { return "get userId = " + userId; } @PatchMapping("/{userId}") public String updateUser(@PathVariable String userId).. 2021. 9. 9.
스프링 요청 매핑 @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); @RequestMapping(value = "/hello-basic",method = RequestMethod.GET) public String helloBasic(){ log.info("helloBasic"); return "ok"; } @GetMapping(value = "/mapping-get-v2") public String mappingGetV2(){ log.info("mapping-get-v2"); return "ok"; } @GetMapping("/mapping/{userId}") public Strin.. 2021. 9. 9.
더 맵게 (자바) package prog; import java.util.PriorityQueue; import java.util.Queue; public class 더맵게 { public static void main(String[] args) { Solution_더맵게 s = new Solution_더맵게(); System.out.println(s.solution(new int[] {1, 2, 3, 9, 10, 12},7)); } } class Solution_더맵게 { public int solution(int[] scoville, int K) { int answer = 0; Queue pq = new PriorityQueue(); for (int i : scoville) { pq.add(i); } while(tru.. 2021. 9. 8.
타겟넘버 (자바) package prog; public class 타겟넘버 { public static void main(String[] args) { Solution_타겟넘버 s = new Solution_타겟넘버(); System.out.println(s.solution(new int[] {1, 1, 1, 1, 1},3)); } } class Solution_타겟넘버{ static int TG; static int answer; public int solution(int[] numbers, int target) { TG = target; dfs(numbers,0,0); return answer; } private void dfs(int[] numbers, int cnt, int now) { if(cnt == numbe.. 2021. 9. 8.
로깅 로그 라이브러리는 Logback, Log4J, Log4J2 등등 수 많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 바로 SLF4J 라이브러리다 SLF4J는 인터페이스이고, 그 구현체로 Logback 같은 로그 라이브러리를 선택하면 된다. 로그 선언 private Logger log = LoggerFactory.getLogger(getClass()); private static final Logger log = LoggerFactory.getLogger(Xxx.class) @Slf4j : 롬복 사용 가능 로그 호출 log.info("hello") 실무에서는 항상 로그를 사용해야 한다. package hello.springmvc.basic; import lombok.extern.slf.. 2021. 9. 8.
기능개발 (자바) package prog; import java.util.*; public class 기능개발 { public static void main(String[] args) { Solution_기능개발 s = new Solution_기능개발(); System.out.println(Arrays.toString(s.solution(new int[]{93, 30, 55}, new int[]{1, 30, 5}))); System.out.println(Arrays.toString(s.solution(new int[]{95, 90, 99, 99, 80, 99}, new int[]{1, 1, 1, 1, 1, 1}))); } } class Solution_기능개발 { public int[] solution(int[] prog.. 2021. 9. 7.
124 나라의 숫자 (자바) package prog; public class 일이사_나라의_숫자 { public static void main(String[] args) { 일이사_나라의_숫자_Solution s= new 일이사_나라의_숫자_Solution(); System.out.println(s.solution(1)); System.out.println(s.solution(2)); System.out.println(s.solution(3)); System.out.println(s.solution(4)); } } class 일이사_나라의_숫자_Solution{ public String solution(int n) { StringBuilder answer = new StringBuilder(); while(n!=0){ if(n%3!.. 2021. 9. 6.
멀쩡한 사각형 (자바) package prog; public class 멀쩡한_사각형 { public static void main(String[] args) { Solution_멀쩡한_사각형 s = new Solution_멀쩡한_사각형(); System.out.println(s.solution(8,12)); System.out.println(s.solution(2,3)); } } class Solution_멀쩡한_사각형{ public long solution(int w, int h) { long answer = 1; answer=(long)w*h - (w+h-gcd(w,h)); return answer; } public static int gcd(int a, int b) { while(b!=0){ int r = a%b; a=.. 2021. 9. 6.
최대 공약수 public static int gcd(int a, int b) { while(b!=0){ int r = a%b; a= b; b= r; } return a; } 2021. 9. 5.
단체사진찍기 package prog; public class 단체사진찍기 { public static void main(String[] args) { Solution_단체사진찍기 s = new Solution_단체사진찍기(); System.out.println(s.solution(2,new String[]{"N~F=0", "R~T>2"})); System.out.println(s.solution(2,new String[] {"M~C1"})); } } class Solution_단체사진찍기{ static int N=8; static boolean[] check=new boolean[N]; static char[] arr = new char[N]; static char[] members = {'A', 'C', 'F', .. 2021. 9. 4.
카카오 프렌즈 컬러링북 package prog; import java.util.Arrays; import java.util.LinkedList; public class 카카오_프렌즈_컬러링북 { public static void main(String[] args) { Solution_카카오_프렌즈_컬러링북 s = new Solution_카카오_프렌즈_컬러링북(); System.out.println(Arrays.toString(s.solution( 6,4,new int[][] {{1, 1, 1, 0}, {1, 2, 2, 0}, {1, 0, 0, 1}, {0, 0, 0, 1}, {0, 0, 0, 3}, {0, 0, 0, 3}}))); System.out.println(Arrays.toString(s.solution( 6,4,new.. 2021. 9. 3.
직업군 추천하기 package prog; import java.util.Arrays; import java.util.HashMap; import java.util.StringTokenizer; public class 직업군_추천하기 { public static void main(String[] args) { SolutionC s = new SolutionC(); System.out.println( s.solution(new String[] {"SI JAVA JAVASCRIPT SQL PYTHON C#", "CONTENTS JAVASCRIPT JAVA PYTHON SQL C++", "HARDWARE C C++ PYTHON JAVA JAVASCRIPT", "PORTAL JAVA JAVASCRIPT PYTHON KOTLIN .. 2021. 9. 3.
오픈채팅방 package prog; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.StringTokenizer; public class 오픈채팅방 { public static void main(String[] args) { Solution_오픈채팅방 s = new Solution_오픈채팅방(); String[] result; result = s.solution(new String[] {"Enter uid123 uid1234", "Leave uid1234", "Enter uid4567 uid123", "Change uid4567 uid1234", "Leave uid4567"}); result .. 2021. 9. 3.
문자열 압축 package prog; public class 문자열_압축 { public static void main(String[] args) { Solution_문자열_압축 s = new Solution_문자열_압축(); //System.out.println(s.solution("aabbaccc")); System.out.println(s.solution("a")); System.out.println(s.solution("ababcdcdababcdcd")); } } class Solution_문자열_압축{ public int solution(String s) { if(s.length()==1){ return 1; } int[] answer = new int[s.length()/2+1]; for (int i = .. 2021. 9. 3.
728x90