Computer Sciences(237)
-
[Programmers] 숫자의 표현
https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 10000 이하의 자연수 n이 주어진다. 연속된 자연수의 합으로 n을 만들 수 있는 경우의 수를 구해야 한다. 간단하게 푸는 방법은 이중 for 문으로 해결하는 방법이다. 해결 후 다른 사람의 풀이를 보니 정수론에서 정리된 법칙을 이용해 for 문 한 번만으로 해결한 코드도 있었다. 주어진 자연수를 연속된 자연수의 합으로 표현하는 방법의 수는 주어진 수의 홀수 약수의 개수와 같다라는 정..
2023.08.07 -
[Programmers] 이진 변환 반복하기
https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 이진수인 문자열이 주어진다. 이 문자열의 0을 모두 제거하여 1로만 구성된 문자열로 만든다. 그리고 이 문자열의 길이를 이진수로 바꾼다. 문자열이 1이 될 때까지 이를 반복한다. 이 과정에서 제거된 0의 개수와 변환 횟수를 구하여 반환하면 된다. 코드 1 - 이진 변환 직접 하기 class Solution { private int count = 0; private int zeros = ..
2023.08.07 -
[Programmers] 올바른 괄호
https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 스택 활용 문제로 대표적인 괄호 짝 맞추기 문제이다. 문자가 여는 괄호면 스택이 넣으면 된다. 만약 닫는 괄호라면 스택의 맨 위 문자가 여는 괄호라면 pop 하면 되고 아니라면 그대로 닫는 괄호를 스택에 넣으면 된다. 이 로직을 반복하다가 마지막에 스택이 비어있는 경우가 괄호의 짝이 모두 맞은 경우이다. 코드 import java.util.Stack; class Solution { bo..
2023.08.07 -
[Programmers] 최솟값 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 길이가 같은 두 배열이 주어진다. 두 배열의 원소를 하나씩 곱했을 때 합이 최소가 되도록 구현하면 된다. 정렬을 사용하면 간단하게 해결된다. 두 배열을 정렬한 뒤 한 쪽의 가장 작은 값과 다른 쪽의 가장 큰 값을 곱해서 누적하면 최소합이 된다. 코드 import java.util.Arrays; class Solution { public int solution(int []A, int []..
2023.08.07 -
[Programmers] JadenCase 문자열 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/12951# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 숫자, 영문자, 공백(" ")으로 구성된 문자열이 주어진다. 첫 글자가 문자면 대문자로 바꾼 형태로 변환하여 반환하는 함수를 만들면 된다. 처음에는 평소 하던대로 split(" ")을 사용했다가 공백 조건에서 오류가 발생했다. 그래서 공백 처리를 어떻게 할까 고민하다가 공백을 만나면 그냥 추가하는 방식으로 구현했다. 공백을 -로 대체하고 예시를 들자면 This---is-sample 이..
2023.08.07 -
[Programmers] 최댓값과 최솟값
https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 말 그대로 공백을 기준으로 나누어진 숫자로 구성된 문자열에서 최솟값과 최댓값을 구하면 되는 문제이다. 문제 자체가 쉽기 때문에 최댓값, 최솟값을 구하는 방법에 대해서 생각해보자. 1. 선형 탐색 단순하게 요소 모두를 탐색하면서 최댓값과 최솟값을 비교해보면 되는 방법이다. 항상 O(n)이 소요된다. class Solution { public String solution(String s) ..
2023.08.04