PS/Programmers

PS/Programmers

[level1, for문] 콜라 문제

class Solution { public int solution(int a, int b, int n) { int result = 0; //빈 병 a개마다 꽉 찬 병 b개를 돌려줌 //1회차 빈 병 20개 -> 꽉 찬 병 10개 //2회차 빈 병 10개 -> 꽉 찬 병 5개 //3회차 빈 병 4+1개 -> 꽉 찬 병 2개 //4회차 빈 병 2+1개 -> 꽉 찬 병 1개 //5회차 빈 병 1+1개 -> 꽉 찬 병 1개 //5회차 빈 병의 개수가 a와 같거나 작으면 반복 종료 //빈 병 저장할 변수 int emptyBottle = 0; while ((n / a) * b > 0) { result += (n / a) * b; if (n % a < a) { emptyBottle += (n % a); } n = (..

PS/Programmers

[level1, HashMap] 달리기 경주

1. 문제 2. 문제 해결 논리 1. 문제 이해 데이터 구조 결정 HashMap 이용 선수(players 배열의 원소)와 등수(players 배열 각 원소의 인덱스) 저장 2. 알고리즘 설계 HashMap을 players 배열로 초기화 callings 배열 순회 HashMap에서 player의 등수 추출 버블 정렬을 이용하여 players 배열 갱신 HashMap 등수 갱신 3. 코드 구현 import java.util.*; class Solution { public String[] solution(String[] players, String[] callings) { //1. HashMap으로 초기화 HashMap rankMap = new HashMap(); for (int i = 0; i < playe..

PS/Programmers

[level1, HashSet/TreeSet] 두 개 뽑아서 더하기

1. 문제 2. 문제 해결 논리 1. 문제 이해 주어진 것 int[] numbers // 임의의 자연수 배열 요구되는 것 int[] answer // 두 수의 합으로 나올 수 있는 모든 경우를 담은 배열(중복 X) 2. 데이터 구조 결정 방법1. 중복 없이, 정렬없이 데이터를 저장하는 HashSet 이용 방법2. 중복 없이, 오름차순 정렬을 유지하며 데이터를 저장하는 TreeSet 이용 3. 알고리즘 설계 3-1. HashSet 이용 시 반복문을 통해 HashSet에 두 수의 합으로 나오는 모든 경우를 저장 반복문을 통해 int[] 배열로 변환 Arrays.sort를 이용한 배열 정렬 3-2. TreeSet 이용시 반복문을 통해 TreeSet에 두 수의 합으로 나오는 모든 경우를 저장 Iterator를 ..

PS/Programmers

[level1, 배열/정렬] K번째수

1. 문제 2. 문제 해결 논리 1. 문제 이해 주어진 것 int[] array //조작할 배열 int[][] commands //조작 정보가 담겨있는 이차원 배열 요구되는 것 int[] answer //조작이 완료된 배열 2. 데이터 구조 결정 반복문, Arrays 클래스의 범위 복사, 정렬 메서드 사용 3. 알고리즘 설계 이차원 배열의 행의 수만큼의 사이즈를 갖는 answer 배열 생성 이차원 배열을 행 단위로 순회하는 반복문안에서 조작 및 answer 배열에 저장 3. 코드 구현 import java.util.Arrays; class Solution { public int[] solution(int[] array, int[][] commands) { //commands 배열의 원소 수 == 행의 수..

PS/Programmers

[level1, 비트 연산] [1차] 비밀지도

1. 문제 2. 문제 해결 논리 1. 문제 이해 주어진 것 int n //지도의 한 변의 쿠기 int[] arr1 //하나의 지도인 정수 배열 int[] arr2 //다른 하나의 지도인 정수 배열 요구되는 것 String[] answer //두 지도를 합쳐 "#"과 " "로 이루어진 최종 지도인 문자열 배열 2. 데이터 구조 결정 Integer 클래스의 toBinaryString 메서드, String 클래스의 format, replaceAll 메서드 사용 반복문, StringBuilder, 쉬프트 연산자 사용 3. 알고리즘 설계 toBinaryString, format, replaceAll 메서드 Integer.toBinaryString 메서드로 2진법 문자열로 변환 String.format 메서드로 한..

PS/Programmers

[level1, Arrays] 삼총사

1. 문제 2. 문제 해결 논리 1. 문제 이해 주어진 것 int[] number //임의의 정수 배열 요구되는 것 int result //임의의 세 정수를 합했을 때, 0이 되는 총 경우의 수 2. 데이터 구조 결정 3중 반복문 3. 알고리즘 설계 순차적으로 3개의 원소를 순회하는 반복문 사용 3. 코드 구현 class Solution { public static int solution(int[] number) { //총 합이 0이 되는 경우의 수를 정의할 변수 int result = 0; //인덱스 0부터 시작하는 원소1 for (int i = 0; i < number.length; i++) { //인덱스 i+1부터 시작하는 원소2 for (int j = i+1; j < number.length; j..

PS/Programmers

[level1, Arrays] 예산

1. 문제 2. 문제 해결 논리 1. 문제 이해 주어진 것 int[] d //각 부서가 신청한 금액 int budget //정해진 예산 요구되는 것 int answer //최대로 지원할 수 있는 부서의 수 2. 데이터 구조 결정 Arrays, 반복문, int 사용 3. 알고리즘 설계 Arrays.sort로 주어진 정수 배열 d를 정렬 반복문을 통해 d의 요소를 하나씩 순회 주어진 예산에서 d의 요소중 가장 작은 금액부터 차감 예산이 마이너스가 되는 경우에 반복문 탈출 차감이 1회 이루어질 때마다 answer의 값 +1 3. 코드 구현 import java.util.*; class Solution { public int solution(int[] d, int budget) { //예산 지원 부서 카운팅을 ..

PS/Programmers

[level1, Character] 시저 암호

1. 문제 2. 문제 해결 논리 1. 문제 이해 주어진 것 String s //주어진 알파벳 문자열 int n //밀어낼 수 요구되는 것 n만큼 밀어내고 난 문자열 2. 데이터 구조 결정 StringBuilder, 반복문, Character 클래스 사용 3. 알고리즘 설계 반복문을 통해서 주어진 문자열을 하나씩 순회 조건문에 넣을 조건으로 Character 클래스의 isLowerCase, isUpperCase 메서드 사용 StringBuilder에 추가 및 String으로의 변환 3. 코드 구현 class Solution { public String solution(String s, int n) { StringBuilder result = new StringBuilder(); //문자열 s을 하나씩 순회..

PS/Programmers

[level1, index] 이상한 문자 만들기

1. 문제 2. 문제 해결 논리 1. 문제 이해 주어진 것 String s // 임의의 문자열 문자열을 이루는 단어들 단어의 0번째 ~ 마지막까지 홀수 인덱스는 소문자 단어의 0번째 ~ 마지막까지 짝수 인덱스는 대문자 요구되는 것 주어진 문자열을 위의 제한 사항에 맞춰 변환 후 합친 문자열 2. 데이터 구조 결정 StringBuilder, 반복문, 인덱스 사용 3. 알고리즘 설계 StringBuilder를 이용한 문자열 수정 반복문에서 사용할 인덱스와 따로 움직이는 인덱스의 사용 StringBuilder의 String 변환 및 반환 3. 코드 구현 class Solution { public String solution(String s) { StringBuilder sb = new StringBuilder..

PS/Programmers

[level1, 진법] 3진법 뒤집기

1. 문제 2. 문제 해결 논리 문제 이해 주어진 것 int n // 10진법으로 주어진 수 요구되는 것 int answer // 3진법으로 바꾸고 역순 정렬 후, 10진법으로 변환한 수 데이터 구조 결정 String, Integer, StringBuilder 클래스의 메서드 사용 StringBuilder와 반복문을 사용 알고리즘 설계 String, Integer, StringBuilder 클래스의 메서드 Integer.toString을 이용한 10진법 -> n진법 변환 StringBuilder를 이용한 역순 정렬 Integer.parseInt를 이용한 n진법 -> 10진법 변환 StringBuilder와 반복문 3. 코드 구현 3-1. String, Integer, StringBuilder 클래스 cl..

git-sun
'PS/Programmers' 카테고리의 글 목록