728x90
반응형
SMALL

코딩 테스트 34

프로그래머스) 주사위 게임 3 Lv0

문제 설명 1부터 6까지 숫자가 적힌 주사위가 네 개 있습니다. 네 주사위를 굴렸을 때 나온 숫자에 따라 다음과 같은 점수를 얻습니다. 네 주사위에서 나온 숫자가 모두 p로 같다면 1111 × p점을 얻습니다. 세 주사위에서 나온 숫자가 p로 같고 나머지 다른 주사위에서 나온 숫자가 q(p ≠ q)라면 (10 × p + q)2 점을 얻습니다. 주사위가 두 개씩 같은 값이 나오고, 나온 숫자를 각각 p, q(p ≠ q)라고 한다면 (p + q) × |p - q|점을 얻습니다. 어느 두 주사위에서 나온 숫자가 p로 같고 나머지 두 주사위에서 나온 숫자가 각각 p와 다른 q, r(q ≠ r)이라면 q × r점을 얻습니다. 네 주사위에 적힌 숫자가 모두 다르다면 나온 숫자 중 가장 작은 숫자 만큼의 점수를 얻습..

코딩 테스트 2024.02.17

프로그래머스) 바탕화면 정리 Lv1

문제 설명 코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다. 컴퓨터 바탕화면은 각 칸이 정사각형인 격자판입니다. 이때 컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 wallpaper가 주어집니다. 파일들은 바탕화면의 격자칸에 위치하고 바탕화면의 격자점들은 바탕화면의 가장 왼쪽 위를 (0, 0)으로 시작해 (세로 좌표, 가로 좌표)로 표현합니다. 빈칸은 ".", 파일이 있는 칸은 "#"의 값을..

코딩 테스트 2024.02.16

프로그래머스) 문자열 나누기 Lv1

문제 설명 문자열 s가 입력되었을 때 다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 합니다. 먼저 첫 글자를 읽습니다. 이 글자를 x라고 합시다. 이제 이 문자열을 왼쪽에서 오른쪽으로 읽어나가면서, x와 x가 아닌 다른 글자들이 나온 횟수를 각각 셉니다. 처음으로 두 횟수가 같아지는 순간 멈추고, 지금까지 읽은 문자열을 분리합니다. s에서 분리한 문자열을 빼고 남은 부분에 대해서 이 과정을 반복합니다. 남은 부분이 없다면 종료합니다. 만약 두 횟수가 다른 상태에서 더 이상 읽을 글자가 없다면, 역시 지금까지 읽은 문자열을 분리하고, 종료합니다. 문자열 s가 매개변수로 주어질 때, 위 과정과 같이 문자열들로 분해하고, 분해한 문자열의 개수를 return 하는 함수 solution을 완성하세요. ..

코딩 테스트 2024.02.16

프로그래머스) 숫자 짝꿍 Lv1

문제 두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다. 예를 들어, X = 3403이고 Y = 13203이라면, X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 3, 0, 3으로 만들 수 있는 가장 큰 정수인 330입니다. 다른 예시로 X = 5525이고 Y = 1255이면 X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 2, 5, 5로 만들 수 있는 가장 큰 정수인 552입니다(X에는 5가 3개, Y에는 5가 2개..

코딩 테스트 2024.02.15

프로그래머스) 옹알이(2) Lv1

조카는 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 조카가 발음할 수 있는 단어의 개수를 return 하시오.... 먼저 연속해서 발음하는 ayaaya|yeye|woowoo|mama 를 모두 replaceAll 로 제외시켰다 그 다음 2중 for 문을 사용하고 그 안에 while 문을 사용하여 문자가 맞을 경우 "" 로 변경하고 answer++ 을 했는데 시간초과가 되어버린다! class Solution { public int solution(String[] babbling) { String tell[] = {"aya", "ye", "woo", "ma"}; int answer = 0..

코딩 테스트 2024.02.14

프로그래머스) 햄버거 만들기 Lv1

햄버거를 순서대로 뽑아내는 문제입니다! 빵 : 1, 야채 : 2, 고기 : 3 위 조건으로 1231 숫자를 최대로 뽑아낼 수 있는 방법을 구하는 코딩테스트 문제! 처음에는 무작위로 주어지는 int 배열을 String 하나의 문자로 만든 뒤 indexOf 를 통해 "1231" 문자가 없을 때까지("1231" 이 포함이면 -1 을 뽑음) while 문을 돌렸다 -> while(조건문) () 안의 조건이 거짓이 될 때까지 반복하는 반복문이다.(기본 문법인데 가끔 헷갈려서 설명추가;;) 테스트케이스 실행시에는 너무 잘되는데, 문제를 제출할 때 몇몇 캐이스가 시간초과가 떠버린다... import java.util.*; class Solution { public int solution(int[] ingredient..

코딩 테스트 2024.02.14

프로그래머스) 달리기 경주 Lv1

맨 처음 순서를 정해준 뒤 호출하는 이름이 앞 순번에 달리는 선수와 순번이 바뀌는 문제! hashMap 으로 문제를 풀어보았는데 계속 3번째에서 순번이 바뀌지 않는 현상이 있었다.... 확인해보니 key value 값으로 저장한 부분에서 value 값에 따라 순번을 체크했었는데, 자리값으로 순번을 매기고 있어서 내가 원하는 대로 순번이 바뀌지 않았다... (오답 소스) import java.util.*; class Solution { public String[] solution(String[] players, String[] callings) { String[] answer = new String[players.length]; Map map = new HashMap(); // map 에 데이터 현재 플레..

코딩 테스트 2024.02.12

코딩테스트 준비

코딩테스트 공부방법 String 클래스 특징 ▶ += 또는 + 연산을 지양해야한다. 아래와 같은 연산을 한다면 한 문자열에 1234 가 합쳐지는 문자열이 되는 것이 아닌 + 연산을 할때마다 새로운 객체를 만들어서 연산을 수행하기 때문에 아래의 코드의 경우 1, 12, 123, 1234 가 각각 String Constant Pool 에 새로운 리터럴로 저장되며 아무도 참조하지 않은 리터럴은 GC(Garbage Collection)가 회수해가는 과정을 거치게 되고 이러한 과정은 성능 저하의 원인이 된다. String str = "1"; str += "2"; str += "3"; str += "4"; 최대공약수 계산 // 최대공약수 계산 public int gcd(int a, int b) { while (b ..

코딩 테스트 2024.02.11

프로그래머스) [PCCE 기출문제] 10번 / 데이터 분석 Lv1

Lv1 이지만 아닌 것 같은 문제.... 코드번호, 제조일, 최대수량, 현재 수량으로 구성되어있는 데이터 중 필요한 데이터를 뽑아서 정렬하는 문제입니다. 각각 데이터를 순서에 맞게끔 데이터를 뽑고, 조건에 맞을 경우 아래 int 배열 리스트에 데이터를 쌓았다. List list = new ArrayList(); 그 뒤에 list 배열을 2차원 배열로 풀어서 answer에 값을 넣은 뒤 실행했는데 테스트 코드 성공!! 그런데 소스코드가 너무 더럽다 람다식을 코테문제를 풀 때 처음 적용시켜봤는데 final 를 사용해야된다고 해서 변수를 또 바꿔주고 순차적으로 단계를 나눠서 처리를 해나가는데 리스트 int 배열을 선언해서 사용하는것도 맘에 안든다.... 끼워맞추기로 정답은 맞췄지만 조금 찝찝한 상황 다른사람의..

코딩 테스트 2024.02.11

프로그래머스) [PCCP 기출문제] 1번 / 붕대 감기 Lv1

이틀동안 틈틈히 고민하면서 푼 문제.... 어떠한 게임에 붕대 감기라는 기술을 통해 health 를 회복하는 게임 시전시간, 초당 회복량, 추가 회복량의 변수값을 통해 몬스터에게 공격을 받은 만큼의 피을 계속 회복하는 게임이다 각각의 변수값이 주어지고 공격과 공격 타이밍을 변수로 받으면 그 값에 따라 마지막 공격에 남은 피를 확인해야하는데 우선 저는 HashMap을 통해 공격받는 시점을 모두 체크하였습니다. 그 후 시간대를 for 문으로 돌려서 아래 3가지 조건으로 문제를 해결했습니다! 1. 공격받는 시점에 hp 감소 2. 피가 가득 차있으면 다음 시간으로 패스 3. 공격입은 후 피를 회복할 때 처음에 문제를 해결하고 제출을 했을 때 테스트 14번에 막혔었다... 문제가 되는 부분을 확인해보니 회복 카운..

코딩 테스트 2024.02.09
728x90
반응형
LIST