본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Java(자바)85

이진 변환 반복하기 (프로그래머스, Level 2) 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 s의 길이는 1 이상 150,000 이하입니다. s에는 '1'이 최소 하나 이상 포함되어 있습니다. 입출력 예 주어진 데.. 2022. 6. 21.
BFS(Breadth-first Search), DFS(Depth-First Search) 너비우선 탐색, 깊이탐색 알고리즘 문제에서 자주 등장하는 단골손님 입니다. 탐색(Search)이란 그래프 구조형태의 데이터에서 특정 데이터를 찾거나 서로의 연결 상태를 확인하기 위한 방법으로 알려져 있습니다. * 물론 그래프 형태의 데이터구조에서만 사용되지는 않습니다 단순한 반복문이나 조건문으로 이루어진 알고리즘이 아니기 때문에 처음 접근하기에는 난이도가 있다고 생각 합니다. 또한 그래프(graph)구조를 2중배열로 표현하는 방법을 만나기 때문에 다차원배열에 대해서 경험이 적다면 역시나 어려울 수 있습니다. 아래와 같은 데이터 구조가 있다고 가정하여 봅니다. 숫자 1은 숫자 2,4와 연결되어 있습니다. 숫자 2는 1,3,4와 연결되어 있습니다. 숫자 3은 2,4와 연결되어 있으며, 숫자 4는 1,2,3과 연결되어 있습니다. 1 .. 2022. 6. 8.
전력망을 둘로 나누기 (프로그래머스, Level 2) 문제 설명 n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 2 이상 100 이하인 자연수입니다. wires는 길이가 n-1인 정수형 2차원 배열입니다. wires의 각 원소는 [v1, v2] 2개의 자연수로 이루어져 있으며, 이는 전력망의.. 2022. 6. 7.
영어 끝말잇기 (프로그래머스, Level 2) 최근 지친마음(?)을 회복하고자 간단한 코테문제를 풀기 시작하였습니다. 프로그래머스에서 제공되는 "영어 끝말잇기" 라는 문제를 풀어 보았습니다. 문제 내용은 아래와 같습니다. * 문제 설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → drea.. 2022. 5. 16.
재미있고 어려운 Java의 람다(lambda) 자바에서 람다는 기존의 인터페이스형태의 클래스를 화살표모양의 함수 형태로 표기하는 방법 입니다. 이러한 람다식의 장점은 아래와 같습니다. 1. 코드의 간결성 - 람다를 사용하면 불필요한 반복문의 삭제가 가능하며 복잡한 식을 단순하게 표현할 수 있습니다. 2. 지연연산 수행 - 람다는 지연연상을 수행 함으로써 불필요한 연산을 최소화 할 수 있습니다. 3. 병렬처리 가능 - 멀티쓰레디를 활용하여 병렬처리를 사용 할 수 있습니다. 일반적으로 표기하는 람다식 샘플 입니다. import java.util.Arrays; import java.util.List; import java.util.function.Function; public class LambdaTest { public static void main(S.. 2022. 4. 7.
자바 참조 데이터(Java Array, Java List) 사용간 유의 사항 간단하게 살펴보는 자바에서의 참조형식 데이터 입니다. 대표적인 데이터로는 배열(Array)과 컬렉션의 리스트(list)를 들 수 있습니다. 이러한 참조형식의 데이터는 아래와 같은 특징을 지니고 있습니다. * 특징 - 참조형 변수 안에는 값들을 저장하고 있는 객체를 가르키는 주소를 가지고 있습니다. - 힙 영역에 저장됩니다. 이러한 참조형식의 데이터를 사용할 때 우리는 복사(copy)에서 종종 실수를 하고는 합니다. 아래와 같은 코드를 살펴봅니다. import java.util.Arrays; import java.util.List; public class ArrayAndList { public static void main(String[] args) { String array[] = {"data1", "d.. 2022. 3. 21.