
[프로그래머스] 2단계 - 최솟값 만들기
2023. 12. 27. 16:49
Algorithm Study
문제 설명 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱할때, 누적값이 최소가 되게하여 return https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 누적값이 최소가 되게하는 방법은 배열 A에서의 작은 값과 배열 B에서의 큰 값을 곱해주며 더하면 된다 따라서 배열 A는 sort을 사용하여 오름차순으로 정렬하고, 배열 B는 sort를 사용하여 내림차순으로 정렬한 뒤, 인덱스끼리 곱해주면 된다 소스 코드 #include #in..

[프로그래머스] 2단계 - JadenCase 문자열 만들기
2023. 12. 27. 16:45
Algorithm Study
문제 설명 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 JadenCase 문자열을 return https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 if문의 조건을 통해 문제를 풀 수 있다 단, 조건을 세세히 줘야한다 우선, 문자열의 맨 앞이거나, 앞에 빈칸이 나왔을 경우와 그렇지 않은 경우로 나눈다 그렇지 않은 경우에는 문자가 대문자인 경우만 소문자로 변환하고, 아니면 그냥 문자열을 더한다 문자열의 맨 앞이거나, 앞에..

[프로그래머스] 1단계 - 가장 가까운 같은 글자
2023. 12. 26. 14:46
Algorithm Study
문제 설명 문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자의 위치를 return https://school.programmers.co.kr/learn/courses/30/lessons/142086 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 이중 for문을 사용하면 간단하게 풀 수 있다 밖의 for문은 문자열의 문자 하나하나씩 반복하는 for문이고, 안의 for문은 처음부터 해당 문자가 있는 곳까지 반복하는 for문이다 if문을 통해 같은 문자가 등장하면 해당 문자들의 인덱스 ..

[프로그래머스] 2단계 - 최댓값과 최솟값
2023. 12. 22. 21:24
Algorithm Study
문제 설명 문자열 s에는 공백으로 구분된 숫자들이 있고, s에 다타나는 숫자 중 최소값과 최대값을 찾아 "(최소값) (최대값)" 형태의 문자열을 return https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 문자열을 공백을 기준으로 split하고, stoi를 통해 int형 벡터로 받아준다 이후 벡터를 오름차순으로 정렬하고, 최솟값과 최대값을 하나의 문자열로 생성한다 문자열을 공백을 기준으로 split할때 사용하는 것이 string s..

[프로그래머스] 1단계 - 과일 장수
2023. 12. 22. 20:58
Algorithm Study
문제 설명 과일 장수가 사과를 한 상자에 m개씩 담아 포장하고 있고, 상자에 담긴 사과 중 가장 낮은 점수가 p인 경우 사과 한 상자의 가격은 p * m이다 과일 장수가 가능한 많은 사과를 팔았을 때, 얻을 수 있는 최대 이익은? (사과는 상자 단위로만 판매하며, 남는 사과는 버림) https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 우선 사과 벡터를 오름차순으로 정렬을 한다 이후 for문을 돌며 사과의 가격이 제일 큰 순으로(즉, ..

[프로그래머스] 0단계 - 안전지대
2023. 12. 22. 19:25
Algorithm Study
문제 설명 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류할 때, 안전한 지역의 칸 수를 return https://school.programmers.co.kr/learn/courses/30/lessons/120866 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 우선 지역의 상, 하, 좌, 우, 대각선 총 8칸에 대한 배열 dy, dx를 생성한다 이중 for문을 돌며, 지뢰가 있는 지역이면 상, 하, 좌, 우, 대각선을 모두 위험 지역으로 -1로 표시해준다 이때, 상, 하, 좌, 우가 board의 ..

[프로그래머스] 0단계 - 겹치는 선분의 길이
2023. 12. 22. 18:09
Algorithm Study
문제 설명 선분 3개가 평행하게 놓여있을때, 두 개 이상의 선분이 겹치는 부분의 길이를 return https://school.programmers.co.kr/learn/courses/30/lessons/120876?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이법 선분이 그려지는 구간을 담는 배열 line[201]을 선언한다 이때 선분의 구간은 -100부터 100까지이지만 배열은 음수 인덱스를 가질 수 없으니 구간에서 100을 더한 값을 인덱스로 가진다 벡터를 돌면서 해당하는 구간에 +1을 한다 이때 선분이 겹쳐야하므로,..

[프로그래머스] 0단계 - 평행
2023. 12. 20. 19:30
Algorithm Study
문제 설명 4개의 점이 주어졌고, 점을 2개씩 이었을 때 두 직선이 평행이 되는 경우가 있으면 1 아니면 0을 return https://school.programmers.co.kr/learn/courses/30/lessons/120875 문제 풀이법 총 3가지 경우의 수가 주어진다 1. 0번째와 1번째, 2번째와 3번째를 이었을 때 2. 0번째와 2번째, 1번째와 3번째를 이었을 때 3. 0번째와 3번째, 1번째와 2번째를 이었을 때 평행인지 아닌지는 기울기를 통해서 알 수 있다 기울기가 같으면 평행이다 기울기는 "세로 / 가로"로 구한다 단순히 저 3개의 경우를 다 나열하면서 풀어도 되지만, 뭔가 for문을 가지고 풀고싶었다 따라서 list[3][4]라는 배열을 두어 for문을 3번씩 돌면서 각 기울..

[프로그래머스] 0단계 - 옹알이(1)
2023. 12. 20. 18:29
Algorithm Study
종강하고 너무 오랜만에 다시 푸는 알고리즘!! 다 까먹었지만 다시 처음부터 풀어봅시다~~~ 문제 설명 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩만 사용한 발음밖에 하지 못하는 조카가 발음할 수 있는 단어의 개수를 return https://school.programmers.co.kr/learn/courses/30/lessons/120956 문제 풀이법 우선 발음 가능한 단어들을 배열로 담아둔다 babbling[i]에서 발음이 가능한 단어의 총 길이 수를 담기 위한 변수 len 선언 babbling[i]의 총 길이인 변수 total_size 선언 발음은 최대 한 번씩만 사용 가능하니, 각 발음에 대하여 몇 번 사용했는지 알 수 있는 배열 used[4] 선언 해준다 이중 fo..

[Java의 정석] Chapter 10 날짜와 시간 & 형식화
2023. 6. 28. 16:48
study/Java의 정석
날짜와 시간 Date : 날짜와 시간을 다룰 목적으로 JDK1.0 부터 제공되어온 클래스 Calendar : JDK1.1 부터 제공되어온 클래스 java.time패키지 : JDK1.8부터 제공되어온 클래스 Calendar와 GregorianCalendar Calendar는 추상클래스이기 때문에 직접 객체를 생성할 수 없고, 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야 함 Calendar cal = new Calendar(); // 오류 Calendar cal = Calendar.getInstance(); //Calendar 클래스를 구현한 클래스의 인스턴스 반환 getInstance()는 시스템의 국가와 지역설정을 확인해서 태국인 경우에는 BuddhistCalendar의 인스턴스를 반환 태국..