본문 바로가기

dev/코테

(23)
달리기 경주 프로그래머스에서 달리기 경주 문제를 풀었습니다. https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 설명은 위의 링크에서 확인하시면 됩니다. 각 선수에 대한 인덱스 정보를 map에 저장합니다.(16~21라인) 추월이 발생하면 배열에서 바로 앞의 선수와 위치를 바꾸고 인덱스 정보를 갱신합니다.(23~33라인) LinkedList로 문제를 풀려고 하면 시간제한에 걸리는 문제가 발생하기 때문에 Map을 통해 각 선수에 대한 인덱스를 관리하..
신고 결과 받기 프로그래머스에서 신고 결과 받기 문제를 풀었습니다. https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 설명의 위의 링크에서 확인하시면 됩니다. 한 유저에 대한 중복 신고 횟수를 1회로 처리하기 때문에 신고 정보를 가지고 있는 report 배열을 Set으로 변환합니다. 유저별 신고한 ID 목록 저장하는 infoMap을 생성하는데 id_list 배열의 순서를 지키기 위해 LinkedHashMap을 사용합니다. 그리고 유저별 신고당한 횟수..
개인정보 수집 유효기간 프로그래머스에서 개인정보 수집 유효기간 문제를 풀었습니다. https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 설명은 위의 링크에서 확인하시면 됩니다. 문제에서 날짜 형식을 YYYY.MM.DD으로 받기 때문에 LocalDate.parse 메소드 리턴날짜 형식을 수정합니다.(30, 38라인) foreach문 써도 되는데 문제에서 리턴값으로 개인정보의 번호를 리턴을 요구했기 때문에 for문을 사용했습니다.(32라인) 개인 정보 배열과 약..
다단계 칫솔 판매 프로그래머스에서 다단계 칫솔 판매 문제를 풀었습니다. https://school.programmers.co.kr/learn/courses/30/lessons/77486 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 설명은 위의 링크에서 확인하시면 됩니다. 판매원 정보가 있는 enroll을 key는 "판매원 이름", value는 "판매원 이름 인덱스"로 구성된 Map으로 변환합니다. Map을 사용하는 이유는 enroll 배열에 있는 사용자 입력 순서대로 각 사용자의 이익금을 입력하기 위해서입니다. (seller와 amount 배열이 enroll..
파일명 정렬 프로그래머스에서 파일명 정렬 문제 풀었습니다. https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 설명은 위의 링크에서 확인하시면 됩니다. 문제는 파일명을 정렬할 때 먼저 문자를 기준으로 정렬하고 문자가 같으면 뒤의 숫자를 기준으로 정렬하는 것입니다. 그래서 각 파일명을 문자와 숫자를 파싱합니다.(13~48라인) 문자를 기준으로 정렬합니다.(50~55라인) 숫자를 기준으로 정렬합니다.(57~64라인) 나머지 소스 코드는 천천히 읽어보시..
k진수에서 소수 개수 구하기 프로그래머스에서 k진수에서 소수 개수 구하기 문제를 풀었습니다. https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 설명은 위의 링크에서 확인하시면 됩니다. 정렬 알고리즘과 비슷해서 어렵지 않게 풀 수 있습니다. k진수로 변환한 숫자에서 자릿수만큼 잘라서 자른 숫자가 문제의 조건이 맞는지 확인하면 됩니다. (1 자릿수, 2 자릿수, 3 자릿수, 4 자릿수...) 그리고 소수 확인하는 로직을 신경 쓰지 않으면 시간초과 발생합니다. 제곱근..
행렬과 연산 프로그래머스에서 행렬과 연산 문제를 풀었습니다. https://school.programmers.co.kr/learn/courses/30/lessons/118670 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 설명은 위의 링크에서 확인하시면 됩니다. ShiftRow 연산은 맨 아래 줄에 있는 배열을 맨 위로 옮기는 연산이어서 어렵지 않습니다. Rotate 연산은 가장자리에 있는 배열을 시계방향으로 1칸씩 옮겨야 하기 때문에 조금 복잡합니다. 그래서 저는 가장자리에 있는 배열을 상단, 우측, 하단, 좌측 4개로 나누어서 진행했습니다. 배열의 ..
성격 유형 검사하기 프로그래머스에서 성격 유형 검사하기 문제를 풀었습니다. https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 설명은 위의 링크에서 확인하시면 됩니다. 요즘 유행하고 있는 MBTI를 활용한 문제로 크게 어렵지 않습니다. "매우 비동의"에서 "매우 동의"까지 성격 점수를 계산하는 부분만 해결하면 쉽게 풀 수 있습니다. 성격 검사 선택지에 비동의에 가까우면 4점 미만의 점수를 동의에 가까우면 4점 초과의 점수를 받습니다. 예를 들면 "TR"..