목록전체 글 (78)
윤개발
웹팩이란 프런트 엔드 프레임워크에서 가장 많이 사용되는 모듈 번들러이다. 모듈 번들러란 자원들(HTML,CSS,JS,IMAGE)을 하나로 병합해주는 것을 말한다. 1. 임의 폴더 생성 2. npm init -y y:(기본 설정으로 하겠다는 옵션) 3. npm i webpack webpack-cli -D i: install 약자 -D --save-dev 개발용 옵션 4. npm i lodash lodash 설치 5. index.html 파일 생성 후 아래내용 붙여넣기 6. root dir에 src 디렉터리를 생성하고 안에 index.js 생성 후 아래내용 붙여넣기 function component() { var element = document.createElement('div'); /* lodash is..
문제 n×n 바둑판 모양으로 총 n2개의 방이 있다. 일부분은 검은 방이고 나머지는 모두 흰 방이다. 검은 방은 사면이 벽으로 싸여 있어 들어가 수 없다. 서로 붙어 있는 두 개의 흰 방 사이에는 문이 있어서 지나다닐 수 있다. 윗줄 맨 왼쪽 방은 시작방으로서 항상 흰 방이고, 아랫줄 맨 오른쪽 방은 끝방으로서 역시 흰 방이다. 시작방에서 출발하여 길을 찾아서 끝방으로 가는 것이 목적인데, 아래 그림의 경우에는 시작방에서 끝 방으로 갈 수가 없다. 부득이 검은 방 몇 개를 흰 방으로 바꾸어야 하는데 되도록 적은 수의 방의 색을 바꾸고 싶다. 아래 그림은 n=8인 경우의 한 예이다. 위 그림에서는 두 개의 검은 방(예를 들어 (4,4)의 방과 (7,8)의 방)을 흰 방으로 바꾸면, 시작방에서 끝방으로 갈 ..
문제 N개의 정수로 이루어진 배열 A가 주어진다. 이때, 배열에 들어있는 정수의 순서를 적절히 바꿔서 다음 식의 최댓값을 구하는 프로그램을 작성하시오. |A[0] - A[1]| + |A[1] - A[2]| + ... + |A[N-2] - A[N-1]| 입력 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. 출력 첫째 줄에 배열에 들어있는 수의 순서를 적절히 바꿔서 얻을 수 있는 식의 최댓값을 출력한다. 풀이 모든 경우를 다 해보면 된다. 코드 package sort; import java.io.BufferedReader; import java.io.IOException; import..
문제 두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열을 찾는 프로그램을 작성하시오. 어떤 문자열 s의 부분 문자열 t란, s에 t가 연속으로 나타나는 것을 말한다. 예를 들어, 문자열 ABRACADABRA의 부분 문자열은 ABRA, RAC, D, ACADABRA, ABRACADABRA, 빈 문자열 등이다. 하지만, ABRC, RAA, BA, K는 부분 문자열이 아니다. 두 문자열 ABRACADABRA와 ECADADABRBCRDARA의 공통 부분 문자열은 CA, CADA, ADABR, 빈 문자열 등이 있다. 이 중에서 가장 긴 공통 부분 문자열은 ADABR이며, 길이는 5이다. 또, 두 문자열이 UPWJCIRUCAXIIRGL와 SBQNYBSBZDFNEV인 경우에는 가장 긴 공..
생성자에 매개변수가 많다면 빌더를 고려하라. 정적 팩터리 메서드나 생성자는 매개변수가 많을 때 적절히 대응하기 어렵다. 일반적으로 사용하는 다음의 2가지 경우를 보자. 기존 패턴 1.점층적 생성자 패턴 - 필수 생성자, 선택 매개변수 1개를 받는 생성자, 선택 매개변수 2개를 받는 생성자, ..., n개를 받는 생성자 단점: 매개변수가 많아지면 클라이언트가 코드를 작성하기 어렵고 읽기도 어렵다. 2.자바빈즈 패턴 - 매개변수가 없는 생성자로 객체를 만든 후 세터를 이용해서 결정하는 방식 단점: 객체가 완성되기 전까지 일관성이 무너진 상태에 놓이게 된다. 빌더 패턴 클라이언트는 필수 생성자를 호출해 빌더 객체를 얻고 빌더 객체의 세터메소드를 사용하여 원하는 선택 매개변수를 설정한다. 객체 선언 class ..
https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 문제 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. 맥주 한 박스에는 맥주가 20개 들어있다. 목이 마르면 안되기 때문에 50미터에 한 병씩 마시려고 한다. 상근이의 집에서 페스티벌이 열리는 곳은 매우 먼 거리이다. 따라서, 맥주를 더 구매해야 할 수도 있다. 미리 인터넷으로 조사를 해보니 다행히도 맥주를 파는 편의 www.acmicpc.net 문제 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로..
생성자 대신 정적 팩터리 메서드를 고려하라. 클래스의 인스턴스를 얻는 전통적인 방법은 public 생성자다. 하지만 클래스는 생성자와 별도로 정적 팩토리 메서드를 제공할 수 있다. 생성자보다 정적 팩토리 메소드를 제공하는 방식에는 장단점이 있다. 장점 1.이름을 가질 수 있다. 생성자에게 넘기는 매개변수와 생성자로는 객체의 특성을 제대로 설명하지 못한다. BigInteger(int,int,Random) // 생성자 BigInteger.probablePrime(int bitLength, Random rnd) //정적 팩토리 메소드 다음 두 코드 중에서 어느 쪽이 "소수인 BigInteger 인스턴스를 반환한다"는 의미를 더 잘 설명할까? 또한 매개변수의 순서를 다르게 하여 생성자를 추가하는 방식을 정적 팩..
https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을..
H2 database란? h2 db는 MySQL, oracle 같은 관계형 데이터베이스이다. h2 db는 이들과 다르게 경량 db이며 메모리가 매우 적다. 또한 db를 로컬에 저장하는 것이 아니라 메모리에 저장하는 것이기 때문에 테스트용으로만 써야한다. H2 설치 h2 db 사이트: https://www.h2database.com/html/main.html H2 Database Engine H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser base..
임원면접은 면접관4(임원3, 인사담당자1), 면접자 3으로 면접을 진행하게 됩니다. 임원면접은 본부장님급 이상으로 들어오시며 편하게 해주시려는 성향이 딱 보입니다. 면접자 3명이서 30분정도 진행하기 때문에 많은 질문을 받지는 못합니다. 또한 임원분들이 매일 다르다보니 운도 좀 따르는 것 같습니다. 들어보니 3명다 합격한 면접자들도 있고 저는 3명중 2명만 붙었습니다. 저는 들어가서 1분 자기소개 후 가장 좋아하는 과목 등 단순한 질문만 받은 것 같습니다. 제가 스터디 하면서 유투브를 보면서 준비했던 임원면접과 별반 다르지 않습니다. 열심히 면접준비하셔서 절 보러오세요ㅎ_ㅎ 화이팅! 지금은 2020신입사원으로 kt ds에 다니고 있습니다. 블로그에 너무 상세한 이야기를 적을 수 없는점은 이해해주시고 꼭 ..
기존 개발의 문제점 기존 개발은 객체를 관계형 데이터베이스(RDB)에 저장하는 방식으로 코드를 작성하였다. 그러다 보니 객체중심이 아닌 SQL 중심적인 개발을 하였다. 어떤 객체에 대해서 테이블마다 CRUD를 작성하는 반복되는 노가다 작업을 하고있다. 또한 수정사항이 생겨서 나중에 추가할 칼럼이 생긴다면 기존에 작성했던 CRUD 코드를 모두 수정해야하는 불편함을 겪는다. 이 과정에서 잊고 수정하지 않는 부분이 있다면 바로 장애를 유발한다. 상속 등의 객체를 잘 설계하여도 RDB에는 2번 이상의 쿼리를 날려야하는 불편함이 생긴다. 예를 들어 아래 그림처럼 Animal 이라는 객체는 id와 이름을 가지고 있다고 하자. 이를 상속받은 Dog는 품종을 가지고 있다. 객체지향적으로 잘 설계 하였지만 관계형 데이터..
올해 취직할 생각이 없어서 kt ds 만 서류를 제출하였는데 최종합격까지 하였습니다. 1차 실무면접은 1. 코딩테스트or기술면접 2. 레고면접 3. pt 면접 으로 진행됩니다. 면접자들 모두가 궁금해 했던 인성면접은 진행하지 않았습니다. 저는 면접스터디로 인성만 준비해갔는데요 1. 코딩테스트 코딩테스트는 프로그래머스로 진행되며 별도의 ide, 인터넷을 사용하실 수 없습니다. (a4용지와 펜만 사용가능) 알고리즘 문제는 1번문제 - 스트링 자르고하는 간단한 문제였고 2번문제 - DP 3번문제 - SQL이였습니다. 각 100점으로 총 300점이고 프로그래머스가 요즘 sql을 밀고있다보니 sql 문제도 출제가 되더군요 어렵지는 않습니다. 제출하면 바로 점수가 나오며 테스트케이스중 몇개가 맞았는지 효율성은 몇개..
1. SWOT(강점, 약점 -> 내부분석 / 기회, 위험 -> 외부 분석) 분석기법 강점/약점 : 잘할 수 있는 것과 못하는 것을 정리 기회/위험 : 외부적인 환경에 의해 유,불리함을 따지는 것 1) S : 경쟁력(독점 기술, 핵심 기술) 2) W : 부족함(개발의 한계, 기술의 한계) 3) O : 외부로부터 얻게 된 기회(사회적 이슈, 정책 개선, 시장점유율) 4) T : 우리에게 불리한 요소(일반적 심리, 편견, 정책, 제도, 타사 독점) 5) S+O : 강점을 갖고 기회를 살리는 전략 (핵심 역량 + 트렌드/정책 => 시장 확장) 6) S+T : 강점을 갖고 외부의 위협을 최소화하는 전략 (핵심 역량으로 위협 돌파) 7) W+O : 약점을 보완하고, 역으로 기회를 살리는 전략 (위협이 되는 존재와 ..
2019년 하반기 KT 종합 인적성 평가가 10/12(토) 잠신고등학교에서 진행되었다. 준비 1주일정도의 인적성 준비기간이 있어서 처음에는 고시넷 ( http://books.11st.co.kr ) 두번째 책으로는 시대고시(http://www.11st.co.kr) 책으로 준비를 하였다. 1~4 영역 지각, 언어, 판단, 수리 난이도는 비슷한 것 같고 수추리력과 도식은 시대고시가 훨씬 어려웠던 것 같다. 시대고시가 알파벳, 자음, 모음 등이 나와서 더 어려웠던것 같다. 그리고 수추리력은 시대고시에 좀 억지가 많지않나 생각한다. 시험장에서 보면 바로 넘겨야하는 문제들... 이렇게 2권 준비하고 시험장으로 향했다. 빨리가도 교문 안열어 준다해서 입실 시간에 맞춰 도착했다. 내 교실에는 25명 정원에 4명정도 결..
스프링 부트 docs: https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/reference/htmlsingle/#getting-started-introducing-spring-boot
https://www.acmicpc.net/problem/1405 문제 통제 할 수 없는 미친 로봇이 평면위에 있다. 그리고 이 로봇은 N번의 행동을 취할 것이다. 각 행동에서 로봇은 4개의 방향 중에 하나를 임의로 선택한다. 그리고 그 방향으로 한 칸 이동한다. 로봇이 같은 곳을 한 번보다 많이 이동하지 않을 때, 로봇의 이동 경로가 단순하다고 한다. (로봇이 시작하는 위치가 처음 방문한 곳이다.) 로봇의 이동 경로가 단순할 확률을 구하는 프로그램을 작성하시오. 예를 들어, EENE와 ENW는 단순하지만, ENWS와 WWWWSNE는 단순하지 않다. (E는 동, W는 서, N은 북, S는 남) 입력 첫째 줄에 N, 동쪽으로 이동할 확률, 서쪽으로 이동할 확률, 남쪽으로 이동할 확률, 북쪽으로 이동할 확률..
https://www.acmicpc.net/problem/11403 11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정점의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄부터 N개 줄에는 그래프의 인접 행렬이 주어진다. i번째 줄의 j번째 숫자가 1인 경우에는 i에서 j로 가는 간선이 존재한다는 뜻이고, 0인 경우는 없다는 뜻이다. i번째 줄의 i번째 숫자는 항상 0이다. 출력 ..
링크 : https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. www.acmicpc.net 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째..