이끌든지 따르든지 비키든지

Today I Learned 10

[프로그래머스] 신규 아이디 추천 - JAVA

프로그래머스 코딩 테스트 연습 문제 - 개인정보 수집 유효기간 / JAVA 풀이 정리 풀이 문제를 보고, 정규 표현식이 바로 떠올랐는데, 필요할 때마다 구글링 해서 사용했어서 규칙이 정확히 기억이 안 났다... 정규표현식으로 풀이하면, 깔끔하게 작성할 수 있을 것 같아 규칙을 보면서 작성해 봤습니다. public String solution(String new_id) { // 1단계 : 모든 대문자를 소문자로 치환 String id = new_id.toLowerCase(); // 2단계 : 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거 id = id.replaceAll("[^a-z0-9-_.]", ""); // 3단계 : 마침표(.)가 2번 이상 연속된 부분을 하..

[프로그래머스] 개인정보 수집 유효기간 - JAVA

프로그래머스 코딩 테스트 연습 문제 - 개인정보 수집 유효기간 / JAVA 풀이 정리 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 고객의 약관 동의 일자와, 약관 종류에 따라 오늘 날짜로 파기해야 할 개인정보 번호들을 구하는 문제입니다. 처음에는 날짜 입력값의 "."을 "-"로 변경하고, LocalDate 타입으로 파싱 해서 LocalDate 클래스의 날짜 연산 메서드를 활용해서 풀어보려고 시도했지만, " 모든 달은 28일까지 있다고 가정합니다." 규칙으로 인해 의도한 대로 결과가 나오지 않아, 오늘 날짜와 보관 가능한 날짜를 일(day)로 변환한..

[프로그래머스] 숫자 짝꿍 - JAVA

프로그래머스 코딩 테스트 연습 문제 - 숫자 짝꿍 / JAVA 풀이 정리 https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 for (char digit : X.toCharArray()) { countX[digit - '0']++; } for (char digit : Y.toCharArray()) { countY[digit - '0']++; } 입력된 문자열 X, Y를 순회하면서 등장하는 숫자의 횟수를 세어 배열에 저장한다. for (..

[프로그래머스] 도둑질 - JAVA

프로그래머스 코딩 테스트 연습 문제 - 도둑질 / JAVA 풀이 정리 https://school.programmers.co.kr/learn/courses/30/lessons/42897 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 이 문제는 동적 계획법(Bottom-Up)을 사용해 풀이하는데, 최대한 많은 돈을 훔치며 도둑질하기라는 전체 문제를 도둑질을 첫 번째 집부터 시작하기 도둑질을 두번째 집부터 시작하기 두 가지의 부분 문제로 나누어 해결한다. 코드 풀이 ▶ 첫번째 집을 터는 경우 // 첫번째 집을 털 경우 dp1[0] = money[0]..

[프로그래머스] 금과 은 운반하기 - JAVA

프로그래머스 코딩 테스트 연습 문제 - 금과 은 운반하기 / JAVA 풀이 정리 https://school.programmers.co.kr/learn/courses/30/lessons/86053 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 각 도시에 대해 금과 은을 운반할 수 있는 최적의 경로를 선택 선택된 경로에서 건설 장소로 이동하고, 금과 은을 운반하며 최소 시간을 계산 이진 탐색으로 각 도시에 대해 최소 시간을 계산하고, 그중 최소 시간을 반환 코드 풀이 매개변수(Parameter) 설명 a : 건설할 도시에 전달해야 할 금의 무게 b..

[프로그래머스] 문자열 밀기 - JAVA

프로그래머스 코딩 테스트 연습 문제 - 문자열 밀기 / JAVA 풀이 정리 https://school.programmers.co.kr/learn/courses/30/lessons/120921 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 방법 1 public int solution(String A, String B) { return (B + B).indexOf(A); } 문자열 B를 2번 반복해 이어 붙인 다음 문자열 A가 나타나는 위치(인덱스를) 찾는다. 끝까지 밀어도 A를 찾을 수 없다면 -1, 같다면 0을 반환하므로 다른 조건도 완벽히 만족 방법 2..

[프로그래머스] 연속된 수의 합 - JAVA

프로그래머스 코딩 테스트 연습 문제 - 연속된 수의 합 / JAVA 풀이 정리 https://school.programmers.co.kr/learn/courses/30/lessons/120923 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내가 쓴 코드 public int[] solution(int num, int total) { int startValue = (total / num) - ((num - 1) / 2); int[] result = new int[num]; for (int i = 0; i < num; i++) { result[i] = sta..

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

프로그래머스 코딩 테스트 연습 문제 - 하샤드 수 / JAVA 풀이 정리 https://school.programmers.co.kr/learn/courses/30/lessons/12947 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 입력된 값(x)의 자릿수 합(sum)을 구한다. 입력된 값(x) % 자릿수 합(sum) == 0에 대한 결과를 boolean 타입으로 반환한다. 내가 작성한 코드 public boolean solution(int x) { int sum = 0; int origin = x; //자릿수의 합 계산하기 while (x >..

[프로그래머스] 기능 개발 문제 - JAVA

프로그래머스 코딩 테스트 연습 문제 - 기능 개발 / JAVA 풀이 정리 https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 이 문제는 각 기능이 배포될 때마다 몇 개의 기능이 배포되는지를 구하는 문제이다. 각 기능별 작업 진도와 작업 속도를 이용하여 배포일을 계산하고, 배포일에 배포되는 기능 수를 구하면 된다. 기능별별 배포일 계산 작업 진도(progress)와 작업 속도(speed)를 이용하여 각 기능의 배포일을 계산 배포일 = (1..

네이버 클라우드 캠프 1일차

1일차 오전에는 네이버 클라우드 정낙수 이사님, 비트캠프 교육 총괄 담당자 분, 메직에꼴 최재규 대표님이 교육 과정 소개와 앞으로 우리가 가져야 할 마음가짐과 필요한 것에 대해 말씀해주셨다. 1. 목표 설정 너무 먼 곳을 보다 보면 출발도 하기 전에 지친다. 시작부터 결승선을 바라보기보다는 페이스 조절을 하며 한 단계 한 단계 성장하자. 2. 인사 담당자가 나를 뽑고 싶게 만들려면 무슨 내용이 있어야 할까? - 예측가능성지표 나는 성실한 사람이에요. 이 말을 증명할 수 있어야 한다. 출결, 근태 등에 지각, 결석으로 흠점을 남기지 말자. 학창 시절 누구나 다 받는 것 같던 개근상은 아무것도 아니지만 중요하다. - 성장가능성지표 나는 이정도를 할 줄 알고, 더 성장할 가능성이 있음을 보여줄 수 있어야 한다..