분류 전체보기 112

인터랙티브 웹 Part1_기본 문법부터 시작

두번째 회사로 옮기고, 정말 오랜만에 블로그에 글을 작성하게 되었다..너무 오랜만에.. 정신없이 놀기도 했고, 적응하며 나름 바쁘게 시간을 보냈는데 이제는 공부도 조금씩 해보려고 한다..ㅎㅎ 언제 멈출지 모르지만.. 우선 연구실에 있을 때부터 정말 공부 해보고 싶었던 UI/UX를 끄적여보고자 이전 회사에서 "인터랙티브 웹 페이지 만들기" 라는 책을 샀는데, 이걸 지금 처음 펴본다...! 무튼 그래서 이번 해에는 Interactive Web 쪽과 DB(튜닝쪽을 공부해보고 싶음) & 영어 & 회계,,,,,피할 수 없는 회계 공부까지 천천히 해보려고 한다. 잡담말고 바로 ㄱ ----------------------------------------------------------------------------..

Dynamic Programming

[기록용] - 최대부분 증가수열 예를 들어, 원소가 2, 7, 5, 8, 6, 4, 7, 12, 3 이면 가장 길게 증가하도록 원소들을 차례대로 뽑아내면 2, 5, 6, 7, 12를 뽑아내어 길이가 5인 최대 부분 증가수열을 만들 수 있다 - 각 숫자가 수열의 마지막이라고 했을 때, 만들 수 있는 증가수열의 최대 길이를 기록함 ex) arr[0] = 5 가 마지막이라고 했을 때, 만들 수 있는 증가수열의 최대길이는 1 - 앞에 자신보다 작은 수가 있으면 그 수중 max값을 가져와 +1 을 해준다 static int[] dy; public void solution(int[] arr){ int answer = 0; dy = new int[arr.length]; dy[0] = 1; //해당 숫자를 마지막이라고..

그리디 - JAVA 프로그래머스 풀어보기[테스트용] / 체육복

[기록용] 기록용이므로 자세한 풀이는 설명하지 않습니다 이전에 풀었던 방식은 이중포문을 돌아서 좀 더 간단하게 풀어보기로 함 1) 체육복을 잃어버린 사람은 -1, 갖고있는 사람은 0, 여유분이 있는 사람은 1 로 표기함 2) -1 값을 가진 사람 앞뒤에 여유분이 있는 사람이 있는지 확인 3) 있으면 빌려줘서 둘다 0으로 초기화 4) 없으면 answer 값을 -1 씩 감소 ( 체육복을 못입는 사람이므로) class Solution { public int solution(int n, int[] lost, int[] reserve) { int answer = n; int[] arr = new int[n+2]; // 처음 인덱스와 마지막 인덱스를 0으로 해놓기 위함 for(int i : lost){ arr[i]..

Greedy

[ 기록용 ] - 씨름 선수 문제 키/몸무게가 본인보다 큰 사람이 있으면 탈락함 N명의 지원자가 주어지면 위의 선발원칙으로 최대 몇 명의 선수를 선발할 수 있는지 알아내는 프로그램 1) 먼저 키 순서대로 정렬함 2) 몸무게를 비교하는데, 처음 값을 max로 넣어줌 3) 다음부터는 몸무게만 비교하면됨 / 이전보다 어차피 키는 작으니 몸무게가 max값보다 작으면 탈락 4) 몸무게가 max보다 크면 통과해서 cnt++ 해주고, max값 업데이트 * 키, 몸무게를 넣어주기 위해 Body 클래스 생성 -> sort할때, '키' 기준으로 sort할 수 있도록 compareTo 메소드 오버라이딩함 class Body implements Comparable{ public int h, w; Body(int h, int ..

해쉬- 학급회장/ 애너그램/ 매출액의 종류 *

- 후보 a,b,c,d,e - 투표용지에 반 학생들이 선택한 후보가 쓰여져있고, 학급 회장을 출력하는 문제 - getOrDefault를 활용함 public char solution(int n, String s){ char answer; HashMap map = new HashMap(); for(char x : s.toCharArray()){ map.put(x, map.getOrDefault(x,0) + 1); } int max - Integer.MIN_VALUE; for(char key : map.keySet()){ if(map.get(key) > max){ max = map.get(key); answer = key; } } return answer; } - 애너그램 두 string을 받아서 애너그램 조..

강의정리- 이진트리순회(DFS) / 부분집합 구하기(DFS)

- 이진트리 순회(깊이우선탐색) public void DFS(Node root){ if(root == null) return; else{ System.out.print(root.data+ " "); // 전위순회 DFS(root.lt); System.out.print(root.data+ " "); //중위순회 DFS(root.rt); System.out.print(root.data+ " "); //후위순회 } } - 부분집합 구하기 public class Main { static int n; static int[] ch; public void DFS(int L){ if(L == n+1){ String tmp = ""; for(int i = 1; i< n ; i++){ if(ch[i] == 1) tmp +..

강의정리 - 단어뒤집기(StringBuilder)

1) 문자열 뒤집기 - StringBuilder를 이용한 reverse기능 사용 public int solution(int n, String[] str){ ArrayList answer = new ArrayList(); for(String x: str){ String tmp = new StringBuilder(x).reverse().toString(); answer.add(tmp); } return answer; } - 특정문자만 뒤집어야 할 때 study -> yduts public int solution(int n, String[] str){ ArrayList answer = new ArrayList(); for(String x: str){ char[] s = x.toCharArray(); int l..

강의 정리 - 문자찾기 / 대소문자 변환 / 문장 속 단어

1) 문자 찾기 : 문자열에서 특정 문자 찾기 - 문자열, 문자를 uppercase를 통해 대문자로 표준화 - str.toCharArray() => 문자열을 문자 하나하나로 나눠 배열로 만들어줌 * 문자열의 공백도 인덱스에 포함됨 -> 공백을 포함시키지 않으려면 'replace' 사용해 공백 제거해주고, 배열로 변환해주면 될 듯 함 import java.util.*; public class Main { public int solution(String str, char t){ int answer = 0; str = str.toUpperCase(); t = Character.toUpperCase(t); for(char x : str.toCharArray()){ } return answer; } // tip:..

프로그래머스 - 전화번호 목록 (자바/java)

https://chbuljumeok1997.tistory.com/58 프로그래머스 - 해시/ 전화번호 목록 JAVA programmers.co.kr/learn/courses/30/lessons/42577?language=java 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가. chbuljumeok1997.tistory.com [ 기록용 ] 기존에 풀었던 것과 다르게 풀어보려고 함 * 해시로 풀고 싶었지만 해시가 효율성이 더 떨어지는 것 같아 우선 새로운 방식으로 풀어보려고 합니다 - startsWith 사용 : 비교대상 문자열이 입력된 문자열 값으로 시작되는지 여부를 확인해 boolean(true/false) ..