월간 코드 챌린지 삼각 달팽이

문제 본문의 설명이 매우 직관적이고 예시 그림과 함께 보자 정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요. 이와 같이 n 을 한 변의 길이로 하는 삼각형모양의 배열에서 값을 채워나가면 되는 문제다 그래서 이걸 어떻게 구현을 해야할까? 풀이 먼저 삼각형 모양의 배열을 코드상에서 어떻게 나타낼까?
좀 더 보기 →

월간 코드 챌린지 - 괄호 회전하기

문자열에 대해 괄호 검사 를 하는 매우 간단한 문제로 추가적인 기능으로 해당 문자열을 회전하는 기능 을 추가적으로 요구한다. 단순한 기능 두 요구사항 구현으로 완료되는 문제 풀이 먼저 문자열을 회전하는 기능을 구현해보자 회전이라고는 하지만, 전체 문자열중 맨 앞 문자를 맨뒤에 붙혀주면 되는 간단한 기능이다 private String rotate(String input) { StringBuilder sb = new StringBuilder(input.substring(1)); sb.append(input.charAt(0)); return sb.toString(); } 다음으로는 문자열이 올바른 괄호 문자열인지 확인하는 기능을 구현해보자 대부분의 괄호가 닫혀있는지 확인할때는 스택을 쓰면 편하게 구현이 가능하다
좀 더 보기 →

프로그래머스 - 카펫

문제부터 살펴보자 카펫에 속한 두 타일 색으로 전체 카펫 크기를 도출하면 되는 문제 입력값으로는 두 타일 색인, 갈색 타일, 노란색 타일, 각각의 갯수가 주어진다 중앙의 타일은 항상 노란 타일 이며, 바깥 부분은 갈색 타일 로 둘러쌓여진 형태 풀이 먼저 갈색 타일에 대해 좀 더 살펴보자 갈색 타일 은 전체 카펫의 테두리 부분이며 전체 카펫 타일 갯수를 $ 가로 X 세로 $ 라 칭할 수 있을 때 갈색 타일 갯수는
좀 더 보기 →

2021 데브 매칭 행렬 테두리 회전하기

데브 매칭 지원시 실제론 못풀었던 문제… 앞에 문제나 뒤에 문제에 너무 시간을 소비했었다. 이제 와서 풀어보니, 무난하게 풀릴듯. 먼저 문제 설명을 하자면 예시로 $ 6 X 6 $ 사이즈의 행렬이 있다고 할때 아래와 같은 그림처럼 표기할 수 있다. 이때 각 행렬 좌표 두개의 쌍으로 이루어진 요구사항 (문제상에서는 query) 에 맞춰 해당 좌표 내에 행렬 값들을 시계 방향으로 회전시킨다. 아래 그림은 (2, 2), (5, 4) 를 기준으로 했을 때 회전 예시이다.
좀 더 보기 →

2021 카카오 블라인드 메뉴 리뉴얼

문제 본문이 굉장히 긴편인데, 한눈에 들어오지도 않아 요구하는 바가 무엇인지 바로 파악하기가 힘들었다. 문제의 요구사항으로는 문자열에 대해 각 문자로 만들 수 있는 문자열 조합 도출 문자열 조합에 대한 갯수 도출 가장 많이 나온 조합에 대해 알파벳 순으로 출력 비교적 쉬운 수준으로 보이나, 위에서 말했다싶이 문제 본문을 읽고 바로 요구사항이 떠오르질 않는다… 문제 해결을 위해서 좀 더 풀어서 써보자면… 입력으로 받은 각 손님 별 주문 (문자열) 에 대해 부분 문자열 조합 생성 각 부분 문자열에 대한 카운트 저장 및 업데이트 목표 코스 크기 (int) 에 대해 가장 많이 호출된 부분 문자열 찾기 결과 반환을 위해 알파벳 순으로 정렬 정도로 문자열에 대해 목표 크기에 맞는 부분 문자열 조합을 생성 후
좀 더 보기 →

2018 카카오 블라인드 뉴스 클러스터링

간단히 문제를 요약하자면… 두 문자열을 받아 영문자에 대한 자카르 유사도를 계산하기 정도로 요약이 되나, 세부적인 사항이 있다. 문제 풀이에 앞서 문제 및 요구사항 정리를 해보자 입력값으로는 2자 이상 1000자 이하의 두 문자열을 입력 받음 입력값에 대한 자카르 유사도를 출력해야함 입력 문자열은 두 글자씩 끊어서 연산에 사용한다. 이 때, 기타 공백이나 숫자, 특수 문자가 포함될 경우 연산에 사용하지 않는다 대소문자 구별을 하지 않는다. 그렇다면 자카르 유사도 란 무엇일까?
좀 더 보기 →