자바

· Java/BOJ
문제https://www.acmicpc.net/problem/20310   풀이0과 1로 이루어진 문자열 S가 있으면, 0과 1을 절반씩 제거하는데 사전 순으로 가장 빠른 것을 구하는 문제입니다.  아이디어를 생각해보면, 사전 순이라는 것은 0이 1보다 우선이라는 얘기입니다. 다르게 말하면, 제거할 때 0은 뒤에서부터 제거하여 최대한 앞의 0을 남겨야하고, 1은 앞에서부터 제거하여 사전 순을 미루어야합니다. 전체 문자열 중 0과 1의 숫자를 구하고, 0은 뒤에서 1은 앞에서 인덱스를 찾아가며 각각의 절반에 다다르면 while문을 종료합니다. 아래는 소스 코드입니다.소스 코드import java.util.Scanner;public class Main { public static void main(St..
문제https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이튜플을 구하는 문제입니다. 자료구조로 map과 list를 이용했습니다.  우선 replace와 split을 통해 문자열에서 숫자만을 뽑았습니다. 그리고 숫자들의 각각의 갯수를 세어주는데, 이때 개수가 많을수록 앞쪽에 위치한 숫자입니다.  이 로직을 구현하기 위해 map에는 숫자를 key로 숫자가 나온 횟수를 value로 설정해주었고, cnt가 많은 순서대로 list에 추가했습니다. 아래는 소스 ..
· Java/BOJ
문제https://www.acmicpc.net/problem/1138 풀이 이 문제의 포인트는 큰 숫자부터 LinkedList에 집어넣는다 라고 생각합니다. 76 1 1 1 2 0 0 :왼쪽의 자기보다 큰 수의 개수1 2 3 4 5 6 7 :idx 예제 4번입니다. 여기서 가장 큰 수인 idx=7 부터 LinkedList에 집어넣습니다. LinkedList : 7 그리고 idx 6을 집어넣는데 arr값이 0이므로 왼쪽에 큰 값이 없습니다. LinkedList : 6 7 idx 5는 arr값이 2입니다. 왼쪽에 자기보다 큰 값이 2개이므로 아래와 같습니다. LinkedList : 6 7 5  이렇게 반복해나가다보면 결국, LinkedList라는 삽입이 용이한 자료구조 특성상, 인덱스를 지정해서 Linked..
문제https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이구현 문제입니다. 우선 키패드 간의 거리는 행렬 격자 상에 있다고 가정했습니다. 키패드를 누를 때마다 현재 left, right의 위치가 갱신됩니다. 그리고 다음 번호와 left, right의 거리를 비교해야합니다. 저는 각 번호를 행렬의 열과 행으로 바꾸어준 뒤,  Math.abs(r1-r2)+Math.abs(c1-c2)의 식을 통해 거리를 계산했습니다.  해당 번호를 각각의 행과 열로 표현..
· Java/BOJ
문제https://www.acmicpc.net/problem/17266풀이세 가지 구역을 체크했습니다. 길 시작점부터 첫 가로등까지의 구역, 가로등과 가로등 사이의 구역, 그리고 마지막 가로등과 도착점의 구역입니다.  세 가지 구역의 특징은 가로등과 가로등 사이면, 사이의 구간을 두 개의 가로등이 절반씩 나눠서 커버할 수 있다는 것이고 시작 구역과 도착 구역은 가로등 하나가 온전히 구간을 커버해야합니다.   그래서 아래처럼 세 구간으로 나누어 커버 범위의 최대 값을 구해주었습니다. 주의해야할 것은 만약 가로등과 가로등 사이 구간의 길이가 홀수라면, 사이의 길이/2 +1을 해주어야 한다는 것입니다. 홀수를 2로 나누기만 하면 중간을 커버하지 못하게 됩니다. (3이면 3/2 -> 1, 그러나 3을 1 두개로..
· Java/BOJ
문제https://www.acmicpc.net/problem/17135  풀이전형적인 삼성 코테의 빡 구현 문제입니다.  구현만 충실히 수행하면 되었는데, 삼성 SW 역량 문제의 구현 파트를 풀 때마다 느끼는 것은, 구현 시 중복된 데이터가 처리되는 것을 꼼꼼하게 잘 피해야하는 것 같습니다.   위 문제에서도 적의 수를 세는 부분이나, 적이 이동할 때 등등 for문을 돌며 배열에서만 구현을 처리하려하면 중복되는 데이터로 인해 원하는 결과가 나오지 않습니다. 그래서 저는 list 자료 구조를 따로 선언해 데이터를 저장하고, 후 처리를 해주는 식으로 풀이를 진행했습니다.   자세한 풀이 과정은 주석으로 대체했습니다. 아래는 소스 코드입니다.소스 코드import java.util.*;public class B..
동구름이
'자바' 태그의 글 목록 (2 Page)