이카'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 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
자료구조 - 힙(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
진화를 거듭한 자바, 스프링, 스프링부트
BE/Spring-Boot 2023. 6. 7. 14:07

자바, 스프링, 스프링 부트 자바에 봄이 왔다..! 어떻게 봄을 오게 했는지, 대단한 프레임워크라고 말할 수 있다. 앞으로 계획 커리큘럼은 스프링 부트이다. 이 차이를 분명히 알아야 개념이 흔들리지 않고, 확실히 공부 할 수 있어서 살짝 집고 넘어가려고 한다. Java 스프링, 스프링 부트에 근간이 되는 언어이다. 커피를 두고 비유하자면 원두 정도가 되는 셈이다. 원두만으로는 뭘 하기는 힘든데, 이걸 가공하여 우리가 먹을 수 있게 만든다면 커피가 되는 것이다. Spring 자바 - 스프링 이렇게 묶어서 러프하게 말한다. 하지만 스프링은 카페라고 생각하면 쉽다. 원두로 만든거긴 하지만, 원두(자바)는 아니다. 즉, 부가적인 어떤 것이 첨가되어 만들어 진 것이다. 스프링은 대부분 자바로 만들어져 있다. 하지..

article thumbnail
자료구조 - Stack
SW/자료구조 2023. 6. 7. 01:33

스택 스텍은 많은 분야에서 사용되고 있다. (게임) 스텍이란 마지막에 넣은 데이터를 가장 먼저 추출하는 자료구조이다. 즉, LIFO를 말하며, 주로 컴퓨터 내부 프로세스 구조의 함수 동작 방식이 이걸로 구현되어 있다. 또한 우리가 자주 사용하는 컴퓨터 뒤로가기도 스텍구조 이다. 스텍 사용법 자바 내부라이브러리에 스텍이 구현되어 있다. import java.util.Stack; Stack stack = new Stack(); //int형 스택 선언 Stack stack = new Stack(); //String형 스택 선언 util에 있는 stack이 구현되어 있으며, import시 사용할 수있다. 이미 내부에 다양한 메서드가 구현되어 있다. 추가 push() push(value) 메서드를 활용하면 된다...

article thumbnail
SOILD 원칙
Language/Java 2023. 6. 7. 01:03

SOILD 원칙 프로그래밍 패러다임을 공부하면서 객체지향을 언급하였다. 객체지향을 공부하면 자동으로 따라서 나오는 SOILD원칙에 대해 알아보고자 한다. S : 단일 책임의 원칙(SRP, Single responsibility Principle) 모든 클래스는 각각 하나의 책임만을 가져야 한다는 원칙이다. 만약 한 클래스가 여러 행동에 대한 책임을 가지고 있다면 여러 행동에 대한 어떤 요청이 들어올 수 있다. 이에 따라 모든 행동에 수정을 해줘야함으로 비효율적인 내용이 된다. 반면에 하나의 책임만 가지고 있다면, 해당 클래스를 변경해야 하는 이유와 효율적인 부분이 좋아진다. O : 개방 폐쇄 원칙 (OCP, Open-Closed Principle) 유지 보수 사항이 생긴다면, 코드를 쉽게 확장할 수 있도..

article thumbnail
프로그래밍 패러다임 - Java, JavaScript
Language/Java 2023. 6. 7. 00:28

프로그래밍 패러다임 paradigm 사전에 정의 되어있는 것만 봐도 이해하기 힘든 단어이다. 이걸 어떻게 하면 쉽게 소개를 할까? 고민을 하다가 한 문장이 마음에 갔다. 프로그래머에게 프로그래밍의 관점을 갖게 해주는 사실 이 한 문장에 다 포함되어 있는 것 같다. 앞으로의 내용은 이 문장을 바탕으로 설명 해보려고 한다. 패러다임은 아래와 같이 있다. 절차적 프로그래밍 (PP, Procedure Programming) 객체지향 프로그래밍 (OOP, Object Oriented Programming) 함수형 프로그래밍 (FP, Functional Programming) 이것 뿐만이 아니라 많은 프로그래밍 패러다임이 있지만, 이 3가지만 다루고자 한다. 함수형 프로그래밍(FP) & 선언형 프로그래밍(IP) 선..

article thumbnail
특이점이 온 개발자의 생각 정리
개인공간 2023. 6. 2. 16:42

개발의 특이점 개발 공부를 하고 있는 현재 내 상태는 뭔가 개발이란 이런거구나 라는 결이 보이기 시작했으면서도 아직 어렵고, 뭐 그런 느낌이다. 그래도 어떤 고점으로 올라가기 시작한 느낌도 들기 시작하고, 참 애매한 느낌이다. 이쯤에서 리마인드를 하기 위해서, 내 생각을 정리하고 목표 설정을 위해 포스팅을 한다. 1. 개발 공부 어디까지 해봤어? 지금 Java를 한번 훑었다고 생각한다. 하지만 현재는 개념을 30%정도 알고 있다고 생각한다. 즉, 애매하게 알고 있다는 것이다. 이를 해결하고자 Java를 1회독 더 할 생각이다. 이번 회독은 빠르게 가능 할 듯하다. 또한 조금 더 깊게 공부가 가능할 것이고, 목표는 70%정도 까지 이해하는 것에 의의를 둔다. 목표 기간은 6월 한 달간이다. 이후로는 스프링..

반응형