Programmers 49

[Programmers Lv.2][전화번호 목록][java]

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. 전체 코드 package com.example.javaproject3.psstudy; import java.util.HashSet; public class Solution42577 { public boolean soluti..

Programmers/Java 2023.06.08

[Programmers Lv.4][징검다리][java]

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/43236 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 도착지점까지의 거리 distance는 1 이상 1,000,000,000 이하입니다. 바위는 1개 이상 50,000개 이하가 있습니다. n 은 1 이상 바위의 개수 이하입니다. 알고리즘 바위 간의 거리의 최솟값이 x라고 할 때 바위를 몇 개 제거되어야 하는지 최소 거리 기준치 mid 를 정해놓고 mid 를 보다 크면 제거 제거한 돌이 n 보다 크다? 그럼 최소 거리 기준이 아닌 것 ..

Programmers/Java 2023.06.08

[Programmers Lv.3][입국 심사][java]

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 ex. 30분일 때 1번 심사관은 30 / 7 = 4 → 최대 4명 심사할 수 있음 2번 심사관은 30 / 10 = 3 → 최대 3명 심사할 수 있음 총 7명 심사할 수 있고 n보다 크므로, 현재까지 mid 가 최솟값임 → right 줄이고 answer에 mid 값 임시 저장 각 심사관이 최대 몇명을 심사할 수 있고 그 수가 n보다 작은 경우, 크거나 같은 경우로 따져서 탐색하..

Programmers/Java 2023.06.08

[Programmers Lv.2][순위 검색][java]

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/72412 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 지원서 작성 시, 4가지 항목을 선택해야 함 개발 언어 - cpp, java, python 직군 - backend, frontend 경력 구분 - junior, senior 소울 푸드 - chicken, pizza “-” 은 고려하지 않겠다는 의미 코테 결과를 분석해서 지원자들의 지원 조건을 선택 시 해당 조건에 맞는 지원자가 몇 명인지 알 수 있는 도구 ex. java 로 참여해..

Programmers/Java 2023.06.08

[Programmers Lv.2][가장 큰 수, 메뉴 리뉴얼][java]

문제 링크 가장 큰 수 https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 메뉴 리뉴얼 https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전체 코드 package com.example.ja..

Programmers/Java 2023.06.08

[Programmers Lv.1][문자열 내림차순으로 배치하기, 문자열 내 마음대로 정렬하기][java]

문제 링크 문자열 내림차순으로 배치하기 https://school.programmers.co.kr/learn/courses/30/lessons/12917 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 내 마음대로 정렬하기 https://school.programmers.co.kr/learn/courses/30/lessons/12915 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전체 코드 impo..

Programmers/Java 2023.06.08

[Programmers Lv.2][H-Index][java]

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index 제한사항 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다. 논문별 인용 횟수는 0회 이상 10,000회 이하입니다. 알고리즘 이중 for 문으로 풀지 않는 것이 키포인트 전체 코드 import java.util.A..

Programmers/Java 2023.06.08

[Programmers Lv.1][두 개 뽑아서 더하기][java]

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/68644 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 알고리즘 hashset → Integer[] to int[] Integer[] tmp = hs.toArray(hs.toArray(new Integer[0])) Arrays.stream(tmp).mapToInt(Integer::intValue).toArray() 전체 ..

Programmers/Java 2023.06.08

[Programmers Lv.1][k번째 수][java]

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 제한사항 array의 길이는 1 이상 100 이하입니다. array의 각 원소는 1 이상 100 이하입니다. commands의 길이는 1 이상 50 이하입니다. commands의 각 원소는 길이가 3입니다. 알고리즘 Arrays.copyOfRange : array 배열을 원하는 범위만큼만 복사 전체 코드 package com.example.javaproject3.psstudy; i..

Programmers/Java 2023.06.08

[Programmers Lv.3][불량 사용자][java]

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 [제한사항] user_id 배열의 크기는 1 이상 8 이하입니다. user_id 배열 각 원소들의 값은 길이가 1 이상 8 이하인 문자열입니다. 응모한 사용자 아이디들은 서로 중복되지 않습니다. 응모한 사용자 아이디는 알파벳 소문자와 숫자로만으로 구성되어 있습니다. banned_id 배열의 크기는 1 이상 user_id 배열의 크기 이하입니다. banned_id 배열 각 원소들의 ..

Programmers/Java 2023.06.08

[Programmers Lv.2][수식 최대화][java]

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 (+, -, *) 로 연산 수식이 전달됨 수식에 포함된 연산자 우선순위를 재정의하여 만들 수 있는 가장 큰 숫자를 제출 (같은 순위의 연산자는 없어야 함) 연산자가 n 개라면 정의할 수 있는 연산자 우선순위 조합은 n! 가지 음수라면, 절댓값으로 변환 알고리즘 연산자, 피연산자 나누기 연산자 배열 가지고 우선순위 재정의 → 경우의 수마다 String 으로 하면 될듯 하나의 우선순위..

Programmers/Java 2023.06.08

[Programmers Lv.2][소수 찾기][java]

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 제한 사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 알고리즘 있는 종이 카드로 조합 가능한 수들을 만들어 hashset에 넣는다. (중복 방지) → 재귀 hashset 에 있는 수들을 소수 판별하여 카운트해준다. cntPrime(hs.toA..

Programmers/Java 2023.06.08

[Programmers Lv.2][카펫][java]

https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다. 알고리즘 x, y 를 완전 탐색 x = 갈색 가로, y = 갈색 세로 x-2 = 노란색 가로, y-2 = 노란색 세로 한 칸의 넓이가 1이기 때문에 x와 y를 곱한 값이 ..

Programmers/Java 2023.05.11

[Programmers Lv.1][모의고사][java]

https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 시험은 최대 10,000 문제로 구성되어있습니다. 문제의 정답은 1, 2, 3, 4, 5중 하나입니다. 가장 높은 점수를 받은 사람이 여럿일 경우, return하는 값을 오름차순 정렬해주세요. 알고리즘 찍는 방식 배열을 반복하여 문제 답과 비교하기 위해 배열이 끝까지 비교됐다면 다시 처음부터 비교 (나머지 연산으로) Arrays.*stream*(cnt).max().getAsInt() list..

Programmers/Java 2023.05.11

[Programmers Lv.3][하노이의 탑][java]

https://school.programmers.co.kr/learn/courses/30/lessons/12946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 하노이 탑 연습해보기 >> https://www.mathsisfun.com/games/towerofhanoi.html Play Tower of Hanoi www.mathsisfun.com 조건 n은 15이하의 자연수 입니다. 기둥 3개, 처음에 작은 것이 위에 있도록 쌓여있음 한 번에 하나의 원판만 옮길 수 있습니다. 큰 원판이 작은 원판 위에 있어서는 안됩니다. 알고리즘 목표 : 1 → 3 으로..

Programmers/Java 2023.05.11

[Programmers Lv.2][쿼드 압축][java]

https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 arr의 행의 개수는 1 이상 1024 이하이며, 2의 거듭 제곱수 형태를 하고 있습니다. 즉, arr의 행의 개수는 1, 2, 4, 8, ..., 1024 중 하나입니다. arr의 각 행의 길이는 arr의 행의 개수와 같습니다. 즉, arr은 정사각형 배열입니다. arr의 각 행에 있는 모든 값은 0 또는 1 입니다. 알고리즘 분할 정복(Divide and Conquer) : 복잡한 문제를..

Programmers/Java 2023.05.11

[Programmers Lv.2][모음 사전][java]

https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; public class Solution84512 { static String[] arr = new String[]{"A", "E", "I", "O", "U"}; // 알파벳 모음 배열 전역 변수로 선언 public void dic(List list, String str, int len) { if (len > 5) return; // 알파벳 모음이 5개이기 때문에..

Programmers/Java 2023.05.11

[Programmers Lv.1][신규 아이디 추천][java]

https://school.programmers.co.kr/learn/courses/30/lessons/12918 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. 알고리즘 대문자 → 소문자 소문자, 숫자, 빼기, 밑줄, 마침표 제외 제거 마침표 연속된 부분 하나의 마침표로 치환 마침표가 처음이나 끝에 있으면 제거 빈 문..

Programmers/Java 2023.05.11

[Programmers Lv.1][문자열 다루기 기본][java]

https://school.programmers.co.kr/learn/courses/30/lessons/12918 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr package com.example.javaproject3.psstudy; public class Solution12918 { public boolean solution(String s) { boolean answer = true; if(s.length() != 4 && s.length() != 6) return false; // 문자열의 길이가 4,6이 아니라면 false 반환 try { int..

Programmers/Java 2023.05.11

[Programmers Lv.1][숫자 문자열과 영단어][java]

https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr package com.example.javaproject3.psstudy; public class Solution81301 { public int solution(String s) { String[] num = new String[]{"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; // 각 숫자에 대응..

Programmers/Java 2023.05.11