본문 바로가기

흐어

(169)
[JAVA] 프로그래머스 - 멀쩡한 사각형 문제내용 https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 간단하게 1*1격자 로 이루어진 N*M 행렬이 있는데 왼쪽 위 꼭지점부터 오른쪽 아래 꼭지점까지 선이 이어져 있을때, N*M 행렬에서 선이 지나치지 않은 1*1격자의 개수를 구하는 문제이다. 문제 입출력 예시는 가로길이(w) = 8 세로길이(h) = 12 일때 return 값 = 80 이다. 문제 접근 방법 문제 내용은 매우 ..
[JAVA] 프로그래머스 - 키패드 누르기 https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 핸드폰 키패드를 왼손과 오른손으로 누르는 순서를 출력해주는 문제이다. 두손은 *, #에서 시작하고 무조건 1,4,7은 왼손 / 3,6,9는 오른손으로 입력해야하며 가운데 숫자 2,5,8,0은 왼손과 오른손중 가까운 손으로 입력해주면 된다. 문제 접근 방..
[JAVA] 프로그래머스 - 카카오프렌즈 컬러링북 (DFS , BFS) 문제 내용 https://programmers.co.kr/learn/courses/30/lessons/1829?language=java 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 그림의 영역을 난이도(숫자)에 따라 나누고 나눠진 영역의 개수와 가장큰 영역안에 땅의 개수를 세는 문제다. 처음에 문제를 읽고 문제 이해가 잘되지 않았는데 난이도가 0으로 표시된 곳은 제외해야한다는 점이다. 그외에는 백준의 DFS , BFS 문제로 풀었던 문제들과 유사하다. 문제 접근 방법 먼저 DFS 방법으로 접근해서 풀었고 후..
[JAVA] 프로그래머스 - 숫자 문자열과 영단어 문제 내용 https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 문제 접근 방법 난이도가 LV1이라 그런지 쉽게 풀린 문제다. 생각한 방법은. zero~nine까지 String 배열을 만들고 HashMap에 ket엔 영단어, value엔 숫자(문자)를 각각 맞게 넣어준다. ex) (zero, 0) (one, 1) .... 작업이 완료되면 s 문자열의 문자를 앞에서부터 하나씩 검사해서 빈 문자열(resul..
[JAVA] 프로그래머스 - 오픈 채팅방 문제 내용 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 문제내용은 간단하다 채팅방을 들어오고 나가는 사람들을 기록하고 마지막에 출력하는것. 근데 닉네임 변경조건이 나갔다 다시 들어오면서 바꾸거나 채팅방안에서 바꿀수 있다고 한다. 문제 접근 방법 첫번째 방법은 오로지 배열만 이용해서 풀었는데 배열을 만들고 연산하는 과정이 다른 코드에 비해 복잡해서 그런지 런타임 에러와 시간초과가 나면서 틀리게됐다. 그래서 ..
[JAVA]프로그래머스 - 로또의 최고 순위와 최저 순위 문제 내용 https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 내가쓴 로또 번호(int[] lottos)와 1등 번호(int[] win_nums)를 비교해서 최고와 최저 순위를 구하는 방식이다. 조건은 내가쓴 로또 번호에서 0으로 표기된건 로또번호 1~45 숫자 중 중복되지 않는선에서 어느것으로든 바꿀수 있다는 조건이 있는 문제이다. 문제 접근 방법 문제는 두가지 방..
[JAVA]프로그래머스 - 문자열 압축 (KaKao) 문제내용 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 문제 접근 방법 문자열 관련 문제를 안풀어봐서 처음에 어떻게 풀어야할지 감이 안잡혔다. 그리고 최근까지 풀었던 BFS, DFS 밖에 생각이 안나서 큐를 만들어서 큐에 비교 문자열을 넣어서 비교하려고하고,,, 재귀로도 해보려하고... 삽질을 했다. 답을 참고하여 풀어보니 큐나 재귀를 이용해서 풀수도 있겠단 생각이 들었지만 중요한건. 문자열을 나누는..
[JAVA]BOJ(백준) - 이분 그래프 - 1707 문제내용 https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 문제 접근 방법 처음에 풀때는 간선의 존재여부를 1로 표시해주는 인접행렬을 이용한 BFS방식으로 풀었다. 그결과 시간초과가 나는 풀이가 됐고, 간선을 표시해주는 방법을 찾아보니 인접행렬 대신 ArrayList 를 사용하는 방법이 있다는 것을 알았다. 간단히 예를 들면 ArrayList map = new ArrayList(); 가 있을때 map에 ArrayList를 add했다는 가정하에 v..