이카's
반응형
프로그래머스 - 대충만든자판 for Java
프로그래머스/Lv.1 2024. 8. 19. 16:50

프로그래머스 LV.1 대충 만든 자판문제 설명문제 설명휴대폰의 자판은 컴퓨터 키보드 자판과는 다르게 하나의 키에 여러 개의 문자가 할당될 수 있습니다. 키 하나에 여러 문자가 할당된 경우, 동일한 키를 연속해서 빠르게 누르면 할당된 순서대로 문자가 바뀝니다.예를 들어, 1번 키에 "A", "B", "C" 순서대로 문자가 할당되어 있다면 1번 키를 한 번 누르면 "A", 두 번 누르면 "B", 세 번 누르면 "C"가 되는 식입니다.같은 규칙을 적용해 아무렇게나 만든 휴대폰 자판이 있습니다. 이 휴대폰 자판은 키의 개수가 1개부터 최대 100개까지 있을 수 있으며, 특정 키를 눌렀을 때 입력되는 문자들도 무작위로 배열되어 있습니다. 또, 같은 문자가 자판 전체에 여러 번 할당된 경우도 있고, 키 하나에 같은..

프로그래머스 - 덧칠하기 for Java
프로그래머스/Lv.1 2024. 8. 13. 15:57

프로그래머스 LV.1 덧칠하기문제 설명문제 설명어느 학교에 페인트가 칠해진 길이가 n미터인 벽이 있습니다. 벽에 동아리 · 학회 홍보나 회사 채용 공고 포스터 등을 게시하기 위해 테이프로 붙였다가 철거할 때 떼는 일이 많고 그 과정에서 페인트가 벗겨지곤 합니다. 페인트가 벗겨진 벽이 보기 흉해져 학교는 벽에 페인트를 덧칠하기로 했습니다.넓은 벽 전체에 페인트를 새로 칠하는 대신, 구역을 나누어 일부만 페인트를 새로 칠 함으로써 예산을 아끼려 합니다. 이를 위해 벽을 1미터 길이의 구역 n개로 나누고, 각 구역에 왼쪽부터 순서대로 1번부터 n번까지 번호를 붙였습니다. 그리고 페인트를 다시 칠해야 할 구역들을 정했습니다.벽에 페인트를 칠하는 롤러의 길이는 m미터이고, 롤러로 벽에 페인트를 한 번 칠하는 규칙..

프로그래머스 - 바탕화면 정리 for Java
프로그래머스/Lv.1 2024. 8. 13. 15:28

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

프로그래머스 - 조건에 부합하는 중고거래 댓글 조회하기 for MySQL
프로그래머스/Lv.1 2024. 8. 9. 09:26

프로그래머스 LV.1 조건에 부합하는 중고거래 댓글 조회하기문제 설명문제 설명다음은 중고거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고거래 게시판 첨부파일 정보를 담은 USED_GOODS_REPLY 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS은 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다.Column name Type NullableBOARD_ID VARCHAR(5) FALSEWRITER_ID VARCHAR(50) FALSETITLE V..

프로그래머스 - 달리기 경주 for Java
프로그래머스/Lv.1 2024. 8. 8. 12:29

프로그래머스 LV.1 추억 점수문제 설명문제 설명사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가 없을 때, 이 사진의 추억 점수는 3명의 그리움 점수를 합한 67(11 + 1 ..

프로그래머스 - 달리기 경주 for Java
프로그래머스/Lv.1 2024. 8. 8. 10:22

프로그래머스 LV.1 달리기 경주문제 설명문제 설명얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등으로 바뀝니다.선수들의 이름이 1등부터 현재 등수 순서대로 담긴 문자열 배열 players와 해설진이 부른 이름을 담은 문자열 배열 callings가 매개변수로 주어질 때, 경주가 끝났을 때 선수들의 이름을 1등부터 등수 순서대로 배열에 담아 return 하는 solution..

article thumbnail
근황 및 회고
개인공간 2024. 8. 8. 10:13

최근 근황 및 회고블로그를 되짚어 보니 최근 쓴 글은 작년 6월.알고리즘 글을 한참 쓰고 있을 때, 패스트 캠퍼스 부트캠프 기업연계 프로젝트 전이었다.프로젝트 결과는 우수조로 선발 되었고, 나름의 완성된 결과물을 얻을 수 있었다.맡은 부분은 메뉴 검색 기능과 리뷰 CRUD 기능을 구현했다.검색 기능은 단순 Query로 구현 하였고, 성능은 좋지 않았다. 만약 기회가 된다면 ElasticSearch를 활용하여 리펙토링할 생각이다.오랜만에 썼던 블로그 글을 보니 나름 감회가 새롭다. 이런 저런 문제를 많이 풀었고, 다양하게 공부도 했었다.또한 반성해야 할 부분은 공부한 부분이 기억에 많이 남지 않았다는 것. 장기적 기억으로 가기 위해서는 몇 번의 복습이 필요한데, 이를 간과하고 한번 정리하고 끝낸 기분이다...

article thumbnail
자료구조 - 힙(Java 구현)
카테고리 없음 2023. 6. 22. 09:42

힙 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리(Complete Binary Tree)이다. 완전 이진 트리: 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입하는 트리 즉, 힙을 이해하기 위해서는 트리에 대한 사전 지식이 필요하다. 힙은 왜 사용할까? 배열에 데이터를 넣고, 최대값과 최소값을 찾으려면 O(n) 이 걸림, 이에 반해, 힙에 데이터를 넣고, 최대값과 최소값을 찾으면, $ O(log n) $ 이 걸림, 우선순위 큐와 같이 최대값 또는 최소값을 빠르게 찾아야 하는 자료구조 및 알고리즘 구현 등에 활용됨 힙 구조 힙은 최대값을 구하기 위한 구조 (최대 힙, Max Heap) 와, 최소값을 구하기 위한 구조 (최소 힙, Min Heap)로 분류할 수 있다. 즉, 힙은 ..

article thumbnail
자료구조 - 트리(Java 구현)
SW/자료구조 2023. 6. 22. 09:40

트리 트리는 트리 모양으로 만든 자료구조이다. 즉, 모양은 트리구조지만, 내부적으로는 리스트이다. 자세히 다루자면 아래와 같다. 트리는 Node와 Branch를 이용해서, 사이클을 이루지 않도록 구성한 데이터 구조이다. 그렇다면 트리는 어디서 많이 사용되는가? 트리 중 이진 트리 (Binary Tree) 형태의 구조로, 탐색(검색) 알고리즘 구현을 위해 많이 사용됨 용어 트리를 공부하다보면 용어가 많이 나와 이를 정리해 보았다. Node: 트리에서 데이터를 저장하는 기본 요소 (데이터와 다른 연결된 노드에 대한 Branch 정보 포함) Root Node: 트리 맨 위에 있는 노드 Level: 최상위 노드를 Level 0으로 하였을 때, 하위 Branch로 연결된 노드의 깊이를 나타냄 Parent Node..

article thumbnail
HTTP 1.0/1.1 스펙과 3가지 주제
SW/네트워크 2023. 6. 20. 00:33

HTTP HTTP의 기본적인 것이 궁금하다면 아래 링크를 확인해보자! 잘 쓴 글은 아니지만 노력하여 포스팅한 글이다! HTTP 기본 개념 이번 포스팅에서는 HTTP/1.0과 HTTP/1.1에 대해서 조금 자세히 다뤄보려고 한다. 가장 크게 3가지를 다뤄보려고 한다. 커넥션 유지 호스트 헤더 강력한 인증 절차 HTTP/1.0 문서를 받았는데 주고 받기만 해서는 너무 불편한 점이 많았다. 특히 수정해야 하는 부분에서 만큼은... 이런 불편한 점을 개선하고자 1996년 HTTP Working Group에서 사람들이 사용하던 기능을 모아 문서화를 하였다. 이를 통해 몇 가지 요청을 더 사용하게 되었다. 헤더 추가 클라이언트는 선택적 헤더 정보를 보내 서버의 구성, 서버의 인터넷 시스템 호스트 이름 또는 번호, ..

article thumbnail
Hash 해시, 해시 메커니즘, 중복 Key는?, 충돌
SW/자료구조 2023. 6. 15. 01:32

해시 해시는 Key-Value 쌍으로 저장되는 자료구조를 말한다. 자바에서는 hashMap이 Collections에 구현되어 있다. 이때 주의해야 할 점이 있는데, key는 반드시 중복되지 말아야 한다는 것이다. 해시 메커니즘 기본적인 해시는 위 그림과 같이 Hash function을 통해 만ㄷ르어 진다. Key-Value가 function을 거쳐 어떤 주소를 참조하게 된다. 기본적으로 인덱스 주소를 가지고, 그 주소에 value값이 링크되어 있다. 중복 key는? 해시 Key가 중복되면 어떤값이 나올까? 정답은 나중에 지정된 해시값이 나온다. 즉, 덮어쓰게 된다. 이를 충돌이라고 말한다. 기본적으로 인덱스는 value를 링크드 리스트로 포인트하고 있다. 같은 key를 가진 value가 들어오게 되면 v..

article thumbnail
시간복잡도를 자바로 구현
SW/자료구조 2023. 6. 15. 01:11

시간복잡도 시간복잡도는 알고리즘, 자료구조를 공부하게되면 접하게되면 단어이다. 그렇다면 시간복잡도는 무엇인가? 쉽게 말해 지금 내 코드의 실행 시간을 Big O (빅-오) 표기법: O(N) 표기법으로 표현을 한 것이다. 시간 복잡도 계산은 반복문이 핵심 요소임을 인지하고, 계산 표기는 최상, 평균, 최악 중, 최악의 시간인 Big-O 표기법을 중심으로 공부하면 된다. 대문자 O 표기법 및 게산 방법 입력 n 에 따라 결정되는 시간 복잡도 함수 O(1), O($log n$), O(n), O(n $log n$), O($n^2$), O($2^n$), O(n!)등으로 표기함 입력 n 의 크기에 따라 기하급수적으로 시간 복잡도가 늘어날 수 있다. O(1) < O($log n$) < O(n) < O(n $log n..

반응형