목록CodingTest/Java (342)
기록방
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 문자열 s에서 2번 연속으로 나온 문자쌍을 제거해간다. 제거 한 후 앞 뒤로 붙여야하고 그때 만들어진 문자쌍도 지워야 한다. 🔸 문제 풀이 🔸 스택 자료구조를 사용한다. 스택의 가장 위 문자가 현재 문자와 같으면 꺼내고, 다르면 현재 문자를 스택에 넣는다. 마지막에 스택이 비어있으면 문자열을 모두 제거할 수 있는것이므로 1을 반환한다. 🔸 코드 🔸 import java.util.Stack; class Solution { public int solution(String s) { c..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 n번째 피보나치수를 1234567로 나눈 나머지를 리턴한다. 🔸 문제 풀이 🔸 피보나치수가 커져갈때마다 1234567로 나눠서 누적한다. 🔸 코드 🔸 class Solution { public int solution(int n) { int a = 0; int b = 1; int c; for(int i = 2; i
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 자연수 n의 다음 큰 숫자를 구한다. 다음 큰 숫자는 3가지로 정의한다. n보다 큰 자연수 2진수로 변환했을 때 n과 다음 큰 숫자의 1의 개수가 같다. 다른 두 조건을 만족하는 가장 작은 수 🔸 문제 풀이 🔸 n을 2진수 변환 후 1의 개수를 세서 저장한다. n을 1씩 증가해가며 다음 큰 숫자의 정의를 만족하는지 확인한다. 2진수 문자열의 1의 개수를 세는 부분에서 최적화가 필요하다. 🔸 코드 🔸 class Solution { public int solution(int n) {..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 자연수 n이 입력된다. 연속된 자연수들의 합으로 n을 만들 수 있는 경우의 수를 반환한다. 🔸 문제 풀이 🔸 연속된 자연수들의 첫 값을 1부터 n까지 늘려간다. 연속으로 자연수들을 더해가며 n이 되면 카운트를 늘리고, n을 넘으면 더하기를 멈추고 다음 첫 값부터 계산한다. 🔸 코드 🔸 class Solution { public int solution(int n) { int answer = 0; for(int i = 1; i
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 0과 1로 이루어진 문자열 s에서 0을 제거하고 그 개수를 누적한다. 1로만 이루어진 새 문자열 s`의 길이를 구한다. s`의 길이를 다시 2진수로 바꿔 s로 사용한다. s가 "1"이 될 때까지 반복하고, 반복 횟수와 제거한 0의 수를 반환한다. 🔸 문제 풀이 🔸 문제 분석을 그대로 구현한다. 0의 제거와 2진수 변환을 효율적으로 해야한다. s가 "1"이 되었는지 확인하는 것 보다, 길이가 1이 되었는지 확인하면 편하다. 🔸 코드 🔸 class Solution { public i..