전체 글

전체 글

    [ XXIT ] 2021 스트릿 데브 우먼 파이터 - 스우파 ? 스데파 !

    [ XXIT ] 2021 스트릿 데브 우먼 파이터 - 스우파 ? 스데파 !

    📍 XXIT Instagram https://www.instagram.com/p/CXRC7B1POaV/?utm_source=ig_web_copy_link 게더 타운에서 진행되었고, 사람이 100명이 넘어가니 딜레이가 있었다. (게더 타운 일해일해😒) 분야 별로 팀 배정이 되었고, 나는 훅이라서 빨간 옷을 입었다. 컨셉에 충실하게 대기 시간 동안 캐릭터들이 춤도 췄다. 2시간 동안 진행되는 행사였고, 선생님들 강의는 세션 당 10분 ~ 15분 정도 진행했다. 선생님들 강의가 짧은 게 아닌가 생각했지만 2시간의 시간보다 얻어가는 게 많았다. 현직 선배님들이 제시해주는 방향과 정보는 값졌고, 많은 여성 개발자 동료분들이 모이는 자리는 편안했다. 행사 내용 중 특히나 취직, 이직, 이력서에 관한 부분을 많이 이..

    [ 프로그래머스 ] 2016년

    💡 문제 문제 설명 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) 입출력 예 5 24 "TUE" 📎 LINK 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b..

    Reflection

    Reflection ? 구체적인 클래스 타입을 알지 못해도 클래스의 메소드, 타입, 변수 들을 접근할 수 있도록 해주는 자바 API Controller를 효율적인 구조로 만들기 위해 사용합니다. JAVA API는 java.lang.reflect를 참고하시면 됩니다. Command Pattern과 Reflection ? Command Pattern 메서드로 의존하며 객체를 생성해 참조해서 사용 Reflection package 정보를 String에 담아서 활용 클래스를 한층 더 정적으로 사용할 수 있음 Reflection으로 Class 객체를 생성 TestObj.class package org.thinker.sample; import org.thinker.sample.TestObj; public class..

    Command Pattern

    Command Pattern 이란 ? 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴이다. 이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우 이벤트를 발생시키는 클래스는 변경하지 않고 재사용할 때 유용하다. Command Pattern을 구성하는 요소 수신자 ( Receiver ) : 행동을 담당하는 객체 = 기능을 수행 커맨드 ( Command ) : 수신자의 정보 + 행동이 들어있는 객체 발동자 ( Invoker ) : 커맨드를 저장하는 객체 → 버튼이 어떤 수행을 할 것인지 결정 클라이언트 ( Client ) : 커맨드 객체를 생성하고, 발동자를 통해 수신자에게 할 행동 결정 장단점 장점 기존의 code 수정없이, 새 명령을 ..

    트리(Tree) 개념 정리

    트리 (Tree) 란 ? 노드들과 노드들을 연결하는 간선, 사이클이 없는 하나의 연결 그래프이다. 트리 용어 노드 Node : 트리를 구성하는 기본 요소 간선 Edge : 노드와 노드 간의 연결선 루트 노드 Root Node : 트리 구조에서 부모가 없는 최상위 노드 부모 노드 Parent Node : 자식 노드를 가진 노드 자식 노드 Child Node : 부모 노드의 하위 노드 형제 노드 Sibling Node : 같은 부모를 가지는 노드 외부 노드 External Node, 단말 노드 Terminal Node, 리프 노드 Leaf Node : 자식 노드가 없는 노드 내부 노드 Internal Node, 비 단말 노드 Non-Terminal Node, 가지 노드 Branch Node : 자식 노드 하..

    [ 프로그래머스 ] 올바른 괄호

    💡 문제 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 입출력 예 s answer "()()" true "(())()" true ")()(" false "(()(" false 📍 참조링크 h..

    [ 프로그래머스 ] 위클리 챌린지(21.10) 8주차 최소직사각형

    class Solution { public int solution(int[][] sizes) { int answer = 0; int width = 0; int height = 0; for(int i = 0;i = sizes[i][1] ? sizes[i][0] : sizes[i][1]); int min = (sizes[i][1] >= sizes[i][0] ? sizes[i][0] : sizes[i][1]); width = (max > width ? max : width); if(min >= width) height = min; else if(min > height) height = min; } answer = width *..

    [ 프로그래머스 ] 하샤드 수

    class Solution { static int total = 0; public static void repeat(int x) { int quotient = x / 10; int remainder = x % 10; if(quotient == 0) total += remainder; else { total += remainder; repeat(quotient); } return; } public boolean solution(int x) { boolean answer = true; repeat(x); answer = (x%total==0 ? true : false); return answer; } } 📝 해결 문제를 보고 재귀함수가 가장 먼저 떠올라 재귀함수를 사용해 해결되도록 구현했다. 함수가 종료되는..

    [ 프로그래머스 ] 위클리 챌린지(21.08) 4주차 직업군 추천하기

    import java.util.Arrays; import java.util.List; class Solution { public String solution(String[] table, String[] languages, int[] preference) { String answer = ""; int total = -1; for(String filed : table) { List rankList = Arrays.asList(filed.split(" ")); String title = rankList.get(0); int sum = 0; for(int i=0;i 0) {sum += ((6-index)*pref);} } } if(total == sum) { answer = (answer.compareToIgn..

    [ 프로그래머스 ] 직사각형 별찍기

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int width = sc.nextInt(); int height = sc.nextInt(); for(int i=0;i

    [ 프로그래머스 ] 평균 구하기

    class Solution { public double solution(int[] arr) { double answer = 0; for(int i=0; i < arr.length; i++) { answer += arr[i]; } answer = answer/arr.length; return answer; } } 📝 해결 기본적인 문제라서 금방 풀었다. 나는 for문을 사용했지만 Arrays의 stream 메서드를 이용한 경우도 재미있었다. Arrays.stream(arr).average().orElse(0); average() 배열의 평균값을 구해준다. orElse() 리턴한 값이 없을 때 null 대신 0을 리턴해준다. 📍 문제 https://programmers.co.kr/learn/courses/3..

    [ 프로그래머스 ] 위클리 챌린지(21.08) 2주차 상호평가

    class Solution { public String solution(int[][] scores) { String answer = ""; for(int i=0;i= 80 ? "B" : (avg >= 70 ? "C" : (avg >= 50 ? "D" : "F" )))); answer += grade; } return answer; } } 📝 해결 처음에 첫 번째 for문의 조건식을 해당하는 배열의 개수 값으로 돌려야겠다는 생각에 i < scores[i].length 로 잡아줬는데 ArrayIndexOutOfBoundsException 오류가 발생했다. 오류가 발생한 후에 되짚어보니 x배열과 y배열의 인덱스 개수는 똑같다는 점을 이용해야한다는 것을 깨달았다. int배열은 최소값,최대값을 구해주는 메서드가 ..