Algorithm 5

프로그래머스 : 양옆앞뒤 큰 수 찾기

오늘은 알고리즘 테스트 시험을 봤다. 난이도 상, 중, 하 이렇게 세문제가 나왔으나 중, 하는 쉬웠다. 하지만 난이도가 상인 문제는 어려웠다. 상하좌우의 값을 비교해 가장 큰 값이라면 별을 출력하게 해야 하는 문제였다 처음에는 배열초과가 일어나지 않게 하기 위해 총 세부분으로 나누어 작업했다 1. 두 부분의 값만 비교하면 되는 꼭짓점 2. 세 부분의 값만 비교하면 되는 모서리 3. 상하좌우 모두 비교하여야 하는 안쪽 부분 public class Test_3 { public void Solution(int[][] checkin){ String [][] answer = new String[checkin.length][checkin[0].length]; // 1 꼭짓점 부분 구현 // 1-1. [0, 0] a..

Algorithm 2023.06.22

프로그래머스: 포켓몬

알고리즘 문제를 풀면서 Stream을 이용하여 문제를 너무 풀어보고 싶었다. 그래서 시간이 날 때 틈틈이 Stream에 대해 알아봤다 처음 볼 땐, 무슨말인지도 모르겠고 걱정이 앞섰지만 코드들이 어떤 역할을 하는지 눈에 익기 시작했다. Stream을 사용하여 풀었던 첫번째 문제이다. 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 여러 종류의 포켓몬이 주어진다. 포켓몬의 종류는 중복될 수 있다. 포켓몬은 주어진 포켓몬의 절반만큼 가져갈 수 있다. 이때, 다른 종류의 포켓몬은 몇 마리인가? 가 문제이다. 손쉽게 풀 수 있었던 문제였다. 이번에는 Stream을..

Algorithm 2023.06.21

프로그래머스 : 실패율 (42889)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 위의 문제를 보고 스테이지를 key 값, 실패율을 value값으로 구현하여 풀면 되겠다고 생각했다. 최근에 힘겹게 풀었던 문제들을 TIL로 자주 썼었는데, 이 문제는 특히나 어려웠다. import java.util.*; class Solution { public int[] solution(int N, int[] stages) { Map map = new HashMap(); int answer[] = new int[N]; // 1부터 N까지 map 생성 for (int i = 0; i < N; i++) { ma..

Algorithm 2023.06.20

프로그래머스 : 신규 아이디 추천 (72410)

문시해알 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 구현해야 할 부분이 너무 많아 막막했다. 해야 할 양은 많지만 그래도 구현하지 못할 부분은 없는 것 같아 하나하나 천천히 구현해 나갔다. // 대문자 -> 소문자로 변환 String lower = new_id.toLowerCase(); // 소문자, 숫자, 빼기, 점, 언더바만 값 넣기 String specialCheck = specialCheck(lower); // 점이 연속해서 두개 이상이라면 하나로 바꾸기 String decimalCheck = decimalCheck(specialC..

Algorithm 2023.06.19

프로그래머스 : 문자열 내 마음대로 정렬하기 (12915)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 오늘도 알고리즘 문제를 풀었다. 이번 문제는 굉장히 복잡했다. 우선 구현해야 할 목록을 메모장에 작성했다. 1. n번째 글자를 ASCII로 서로 값을 비교해 버블정렬 2. 만약 n번째 글자가 같다면 2-1. 만약 비교중인 두 문자의 길이가 같다면 2-1-1. 두 개의 int 생성, 첫 번째 글자부터 값이 차이가 나게 되는 글자까지 for문을 사용하여 서로 다른 int에 넣음 2-1-2. 만약 뒤에 있는 int가 더 낮을 시, 현재 위치의 문자와 버블정렬을 통해 교환 2-2. 만약 뒤의 문자 길이가 더 짧다면 ..

Algorithm 2023.06.18