문제 https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 class Solution { public int solution(String s) { String [] word = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; int answer = 0; for(int j=0;j
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; class Solution { public int solution(int[] d, int budget) { int answer = 0; Arrays.sort(d); for(int i=0;i
메이븐 vs 그래들 Maven - Java 전용 프로젝트 관리 도구로, Lifecycle 관리 목적 빌드 도구이며, Apache Ant의 대안으로 만들어짐 - 아파치 라이센스로 배포되는 오픈 소스 소프트웨어 특징 - Lifecycle 관리 도구로, 정해진 Lifecycle에 의하여 작업을 수행하며, 전반적인 프로젝트 관리 기능을 포함하고 있다. clean - validate - compile - test - package - verify - install - site - deploy의 라이프 사이클을 가진다. - 필요한 라이브러리를 pom.xml에 정의한다. 이를 프로젝트 모델링이라고 한다. pom은 Project Object Model의 약자로, 프로젝트 정보(프로젝트 이름, 라이센스, 빌드 설정(소스..
ORM이란? 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 기술 장점 SQL Query문을 길게 쓸 필요없이 ORM 메소드로 데이터들을 제어할 수 있다. 각종 역할에 대해 객체나 함수로 만들어서 하기 때문에, 코드 가독성 및 유지보수의 편리성이 증가한다. DBMS를 교체하는 거대한 작업에도 비교적 적은 리스크와 시간이 소요된다. SQL Injection 공격을 막아주는 기능이 있어 버그나 해킹가능한 요소들을 줄여준다. 단점 완벽한 ORM으로만 서비스를 구현하기 어렵다. 프로시저가 많은 시스템에서는 ORM의 객체 지향적인 장점을 활용하기 어렵다. 이미 프로시저가 많은 시스템에서는 다시 객체로 바꿔야하며, 그 변경하는 과정에서 생산성이 저하되거나, 리스크가 많이 발생할 수 있다. * 프로시저 : ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/70128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 class Solution { public int solution(int[] a, int[] b) { int answer = 0; for(int i=0;i
문제 https://level.goorm.io/exam/195702/%EC%97%B0%EA%B2%B0-%EC%9A%94%EC%86%8C-%EC%A0%9C%EA%B1%B0%ED%95%98%EA%B8%B0/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 풀이 BFS 문제를 풀듯이 푸면 되는데 두가지 다른점이 있다. 1. 같은 숫자에 대해서 que에 넣는다는 것 2. list에 방문한 좌표를 넣는다는 것 1, 2를 시행하고 만약 같은 숫자들이 k개 이상이면 list에 저장한 좌표들을 바탕으로 board를 변경해주면 된다 코드 import java.io.*; import java.util.*; class Main { static cha..
문제 https://level.goorm.io/exam/195701/%EB%8C%80%EC%B2%B4-%EA%B2%BD%EB%A1%9C/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 코드 import java.io.*; import java.util.*; class Main { static LinkedList arr []; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer..
문제 https://level.goorm.io/exam/195700/%EC%A4%91%EC%B2%A9-%EC%A0%90/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 풀이 dp 문제였고 dp 배열을 어떻게 설정하느냐만 결정되면 매우 쉬운 문제였다. 문제에서 중첩되는 점의 개수를 구하라고 되어있다. 중첩되는 점의 개수는 세로와 가로가 교차되는 개수를 의미한다. 즉, 각 칸에서의 세로선의 개수와 가로선의 개수를 구하면 된다. 위의 그림에서 3행2열에서는 가로선이 2개, 세로선이 1개로 2개의 교차점이 생긴다. 이와 같이 세로선의 개수와 가로선의 개수를 구하는 배열을 만들면 된다. 세로선의 개수를 구하는 배열 + 가로선의 개수를 구..
문제 https://level.goorm.io/exam/195699/%EA%B7%B8%EB%9E%98%ED%94%84%EC%9D%98-%EB%B0%80%EC%A7%91%EB%8F%84/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 풀이 이 문제도 전 문제와 같이 그래프 문제이다. 그래프에서의 완전탐색이므로 BFS를 이용하여 문제를 풀었다. 문제 내에서 구해야 하는 것은 3가지이다. 1. 그래프 컴포넌트 리스트 2. 그래프 컴포넌트 사이즈 3. 그래프 컴포넌트 사이의 회선 개수 1과 2 같은 경우는 여태까지 bfs를 풀었던 것처럼 구하면 된다. 다만 3번 같은 경우는 다음과 같이 구한다. bfs를 이용하여 그래프 컴포넌트 리스트..
문제 https://level.goorm.io/exam/195698/%EC%97%B0%ED%95%A9/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 풀이 그래프 완전 탐색문제는 BFS, DFS를 사용해야 하는데 BFS가 편하여 BFS를 사용하여 문제를 풀었다. 문제에서 조건은 다음과 같이 주어졌다. A섬과 B섬이 있을 때, 서로 이동할 수 있으면 연합이 될 수 있다. 연합 안에서 어떤 섬에서 출발해도, 연합의 모든 섬에 방문할 수 있어야 한다. 모든 섬은 하나의 연합에 속해있다. 1. visited 배열을 이용하여 섬의 방문여부를 나타내준다. 2. 그래프에서 내가 방문할 노드가 현재 노드에 연결되어 있는지 확인하고 마찬가지로 ..