코테
-
프로그래머스 Lv.2) 프렌즈4블록알고리즘/프로그래머스 카카오 2020. 5. 22. 22:53
2018 KAKAO BLIND RECRUITMENT [1차] 프렌즈4블록 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 프렌즈4블록. 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙�� programmers.co.kr 풀이 이 문제는 큰 어려움 없이 푼 것 같다. 전체 board를 돌면서 4개가 모여있는 구역을 int 배열을 통해 표시해주고, 전체 탐색이 끝날 때 마다 표시된 구역을 지우면서 카운트를 세주었다. 이 때, 지워진 블록 위에 있는 블록들을 아래로 하나씩 내리면서 블록을 당겨주었다. while문을 통해 삭제가 진행되지 않을 때 까지 진행해주었다. 로직 1. 전체 boar..
-
프로그래머스 Lv.2) 예상 대진표알고리즘/프로그래머스 2020. 5. 22. 22:35
예상 대진표 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N� programmers.co.kr 풀이 이 문제를 2일 전인가 쯤 같이 취준하고있는 형한테 문제를 받았었다. 풀이는 비트 연산을 통해서 경기 수를 구하는 것이었다. 하지만, 내가 비트연산으로 문제를 풀기에는 아직 무리라는 생각이 들어서 나만의 방식으로 풀기로 했다. 궁금하신 분은 여기에서 확인하시면 좋을 것 같습니다. : ) 처음 풀었을 때는 1번과 25번이 시관초과가 떴었다. 그래서 바로 매치를 할 수 있는 경우를 추가시켜주었다. if(left%2 ==1..
-
프로그래머스 Lv.2) 숫자의 표현알고리즘/프로그래머스 2020. 5. 21. 16:51
숫자의 표현 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 풀이 이 문제도 삽질을 조금 한것같다. 수식을 통해 풀어야한다는 압박감에 이것 저것 시도해본 문제였다. 이분탐색을 통해서 풀어보려고도 하고, 점화식을 세워서 풀어보려고도 했는데 코드에서 보시면 알 수 있듯 모두 실패했다.. 시간초과거나 정답이 아닌 경우가 많았기 때문이다. 이 문제도 질문하기 탭을 통해 깨달음을 얻었다. 그냥 완전탐색을 하면 된다는 사실을 알고 허무했다. n이 최대 10000인데 완전탐색하면 효율이 안좋지 않나 생..
-
프로그래머스 Lv.2) 행렬의 곱셈알고리즘/프로그래머스 2020. 5. 21. 16:48
행렬의 곱셈 코딩테스트 연습 - 행렬의 곱셈 [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]] programmers.co.kr 풀이 행렬의 곱셈에 대해 배열의 곱셈이라고 이해하고 문제이해를 5분정도 못했다... ㅎㅎㅎㅎ 아무튼 행렬의 곱셈을 구글링해서 곱셈법을 다시 배웠다.. ㅠㅠ 1. 배열 arr1과 arr2를 통해 답이되는 answer 배열을 만들어 준다. 1-1. 이때 크기는 arr1의 행, arr2의 열이 된다. (행렬의 연산 특징) 2. 각각 배열의 idx에 대해 행렬 곱셈식을 구해 더해준다. 코드 class Solution { public int[..
-
프로그래머스 Lv.2) 최댓값과 최솟값알고리즘/프로그래머스 2020. 5. 21. 16:43
최댓값과 최솟값 코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를�� programmers.co.kr 풀이 주어진 문자열에서 숫자의 최대값과 최소값을 찾는 문제다. 문자열을 split하는 방법에 대해 알고 있다면 쉬운 문제였다. 이 문제는 두 가지의 방식으로 적었는데, StringTokenizer를 통해 split을 하는 방법과 split 메소드를 통해 하는 방법 두 가지가 떠올랐기 때문이다. 또한, StringTokenizer는 IDE에서만 사용해봤기 때문에 제대로 알고있는지 시험해보기 위해 써봤다. StringTok..
-
프로그래머스 Lv.2) 올바른 괄호 짝지어 제거하기알고리즘/프로그래머스 2020. 5. 21. 16:23
올바른 괄호 짝지어 제거하기 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 풀이 로직을 바꿔가며 세 번 시도한 문제다. 첫번째는 StringBuffer에 주어진 String을 두고, 겹치는 부분을 계속해서 지워나가고 StringBuffer의 길이가 0이면 1, 아니면 0을 리턴해주었는데, 역시나 시간초과가 떴다. 두번째로 시도한 로직은 먼저 String을 돌면서 연속되는 글자가 있는 두 index를 LinkedList에 넣어주었다. LinkedList를 돌면서 카운팅을 해주었고, 해당 문자를 제..
-
프로그래머스 Lv.2) JadenCase 문자열 만들기알고리즘/프로그래머스 2020. 5. 21. 16:10
JadenCase 문자열 만들기 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 programmers.co.kr 풀이 시작하는 단어에 대한 검증, 이후 이어지는 글자들에 대한 검증을 해서 Jaden Case로 바꿔주었다. 하지만 8번만 실패가 뜨길래 뭔가 했다. 결국 이 문제의 질문하기를 들어가보니 마지막에 " "와 같이 띄어쓰기가 주어지는 경우를 체크 해줘야 한다는 것이다. split을 통해 한 단어(?)씩 Jaden Case를 만들어줬고, 마지막 띄어쓰기가 있을거라는 상상도 하지..
-
프로그래머스 Lv.2) 올바른 괄호알고리즘/프로그래머스 2020. 5. 19. 23:06
올바른 괄호 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는 올바르지 않은 괄호� programmers.co.kr 풀이 괄호가 열리고 닫히는 것에 주목했다. 괄호가 여는 것 보다 닫히는게 더 많이 나온다면, 그 시점에서 불완전한 괄호가 된다. 이에 따라 스택개념으로 괄호의 갯수를 세주었다. 1. 괄호가 열리면 count를 세준다. 2. 괄호가 닫히면 count를 빼준다. 3. count의 수가 0보다 작은 수가 된다면 탐색을 마치면서 false를 저장한다. 코드 public class AlrightBracket_12909 {..