본문 바로가기

🧑🏻‍💻 Dev/알고리즘

(14)
[프로그래머스] 혼자서 하는 틱택토 Java https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 게임 과정에서 생길 수 있는 모든 반례를 찾는 문제로 판단된다. 문제를 간단하게 한번 분석해 보면 머쓱이가 혼자서 O와 X로 빙고 게임을 진행한다. 진행 중인 게임 상황이 입력으로 주어졌을 때, 그 게임이 정상적으로 나올 수 있는 상황이라면 1을 반환, 아니면 0을 반환하면 된다. 즉, 빙고 게임에서 나올 수 있는 모든 반례를 찾아서 해결해야 된다는 의미이다. 문제 분석 1. 후공(..
[프로그래머스] 레벨 1 문제 모두 풀고난 후 배운점 계속 새로운 문제가 나오고 있지만 2023년 3월 16일 기준으로 레벨 1 문제를 모두 해결해 봤다. 언어는 모두 Java를 사용해서 풀었다. 원래 레벨 1을 조금 풀다가 이정도면 2 레벨로 들어가도 되겠다는 어리섞은 생각을 하게 되었다. 쉽게 풀렸던 몇몇 레벨 2문제를 만나서 그동안 몰랐던 거 같다. 그래서 적어도 레벨 1 문제를 빠르게 다 풀어보자는 생각으로 문제를 풀기 시작했다. 레벨 1문제를 풀며 느낀 점을 정리해보려고 한다. 🔎 무조건 List! 무조건 Map! 내가 처음에 레벨 2를 풀기 시작했을 때 했었던 생각이다. 배열 보다는 역시 리스트를 써야지 이런 생각을 했었고, 실제로도 그렇게 풀었었다. 물론 List, Map, Set 모두 훌륭한 자료구조이다. 하지만 레벨 1문제를 풀면서는 먼저 ..
[프로그래머스] 시소 짝꿍 (Java) 시소 짝꿍 Level 2 문제 설명 어느 공원 놀이터에는 시소가 하나 설치되어 있습니다. 이 시소는 중심으로부터 2(m), 3(m), 4(m) 거리의 지점에 좌석이 하나씩 있습니다.이 시소를 두 명이 마주 보고 탄다고 할 때, 시소가 평형인 상태에서 각각에 의해 시소에 걸리는 토크의 크기가 서로 상쇄되어 완전한 균형을 이룰 수 있다면 그 두 사람을 시소 짝꿍이라고 합니다. 즉, 탑승한 사람의 무게와 시소 축과 좌석 간의 거리의 곱이 양쪽 다 같다면 시소 짝꿍이라고 할 수 있습니다.사람들의 몸무게 목록 weights이 주어질 때, 시소 짝꿍이 몇 쌍 존재하는지 구하여 return 하도록 solution 함수를 완성해주세요. 제한 사항 2 ≤ weights의 길이 ≤ 100,000 100 ≤ weights[..
[Sorfteer] 인증평가(5차) 기출 - 성적 평가 (Java) 문제 현주는 N명의 인원이 참여하는 프로그래밍 스터디 그룹을 이끌고 있다. 현주는 스터디를 위해 대회를 세 개 개최하였고, 모든 구성원이 각 대회에 참여하였다. 참가자는 각 대회에서 0 이상 1,000 이하의 정수인 점수를 얻는다. 한 대회에서 둘 이상의 참가자가 동점이 나오는 경우도 있을 수 있다. 현주는 각 대회별 등수 및 최종 등수를 매기고 싶다. 등수는 가장 점수가 높은 사람부터 1등, 2등, ···, N등의 순서대로 붙는다. 만일 동점이 있을 경우 가능한 높은 (등수의 수가 작은) 등수를 부여한다. 즉, 점수가 내림차순으로 10,7,6,6,4의 순서일 경우, 6점을 받은 두 사람은 공동 3등이 되고, 그 다음 순서인 4점을 받은 사람은 5등이 된다. 이 규칙을 다르게 표현하면 다음과 같다: 각 ..
[Sorfteer] Level 2 문제 풀이 후 정리 (Java) 현대 그룹에서 만든 Soofteer에서 최근 알고리즘 문제를 풀어봤다. 프로그래머스를 주로 풀면서 느꼈던 차이점은 프로그래머스에서는 입력 값을 직접 받지는 않는 반면에 소프티어에서는 직접 입력 값을 받아서 출력하는식으로 문제를 해결해야 한다. 그래서 뭐 하나만 계속 하는것보다는 프로그래머스와 소프티어 둘 다 활용해보면서 입력, 출력 문제도 연습하고, 메서드 파라미터를 활용하여 리턴 값을 가져오는 연습도 해보는 것이 좋다고 느꼈다. 평소에 코드 작성 연습을 IntelliJ IDEA에서 했었는데 자동 완성 기능에 익숙해져서 그런지 소프티어 IDE에서만 코드를 작업하는 것이 조금 힘들게 느껴진 부분도 있었다. 예를 들어 IntelliJ에서는 sout 하고 엔터를 치면 System.out.println이 바로 ..
[Sorfteer] 인증평가(5차) 기출 - 업무 처리 (Java) [인증평가(5차) 기출] 업무 처리 문제 보러가기 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 문제는 위 링크에 접속하면 직접 문제를 풀어보실 수 있습니다! 문제 설명 어떤 부서의 업무 조직은 완전이진트리 모양이다. 즉, 부서장이 루트이고 부서장 포함 각 직원은 왼쪽과 오른쪽의 부하 직원을 가진다. 부하 직원이 없는 직원을 말단 직원이라고 부른다. 모든 말단 직원은 부서장까지 올라가는 거리가 동일하다. 조직도 트리의 높이는 H이다. 아래는 높이가 1이고 업무가 3개인 조직도를 보여준다. 업무는 R일 동안 진행된다. 처음에 말단 직원들만 각각 K개의 순서가 정해진 업무를 가지고 있다. 각 업무는 업무 번호가 있다. 각 날짜에 남은 업무가 있는 경우, 말단 직원은 하나..