분류 전체보기
-
🔗링크 1106 호텔 Gold5 ⚠️문제 세계적인 호텔인 형택 호텔의 사장인 김형택은 이번에 수입을 조금 늘리기 위해서 홍보를 하려고 한다. 형택이가 홍보를 할 수 있는 도시가 주어지고, 각 도시별로 홍보하는데 드는 비용과, 그 때 몇 명의 호텔 고객이 늘어나는지에 대한 정보가 있다. 예를 들어, “어떤 도시에서 9원을 들여서 홍보하면 3명의 고객이 늘어난다.”와 같은 정보이다. 이때, 이러한 정보에 나타난 돈에 정수배 만큼을 투자할 수 있다. 즉, 9원을 들여서 3명의 고객, 18원을 들여서 6명의 고객, 27원을 들여서 9명의 고객을 늘어나게 할 수 있지만, 3원을 들여서 홍보해서 1명의 고객, 12원을 들여서 4명의 고객을 늘어나게 할 수는 없다. 각 도시에는 무한 명의 잠재적인 고객이 있다. 이때..
백준 1106 호텔[JAVA]🔗링크 1106 호텔 Gold5 ⚠️문제 세계적인 호텔인 형택 호텔의 사장인 김형택은 이번에 수입을 조금 늘리기 위해서 홍보를 하려고 한다. 형택이가 홍보를 할 수 있는 도시가 주어지고, 각 도시별로 홍보하는데 드는 비용과, 그 때 몇 명의 호텔 고객이 늘어나는지에 대한 정보가 있다. 예를 들어, “어떤 도시에서 9원을 들여서 홍보하면 3명의 고객이 늘어난다.”와 같은 정보이다. 이때, 이러한 정보에 나타난 돈에 정수배 만큼을 투자할 수 있다. 즉, 9원을 들여서 3명의 고객, 18원을 들여서 6명의 고객, 27원을 들여서 9명의 고객을 늘어나게 할 수 있지만, 3원을 들여서 홍보해서 1명의 고객, 12원을 들여서 4명의 고객을 늘어나게 할 수는 없다. 각 도시에는 무한 명의 잠재적인 고객이 있다. 이때..
2023.08.02 -
🔗링크 1765 닭싸움 팀 정하기 Gold2 ⚠️문제 닭싸움은 월드의 전통이다. 이번 캠프에서도 어김없이 닭싸움 대회가 열렸다. 그런데, 닭싸움을 하기 위해서는 반드시 누가 우리 편이고, 누가 우리 편이 아닌지를 알아야 할 것이다. 닭싸움의 팀을 정하는 원칙은, 평소 학생들의 인간관계에 따라 다음과 같이 정리할 수 있다. 내 친구의 친구는 내 친구이다. 내 원수의 원수도 내 친구이다. 이 때 두 학생이 친구이면 같은 팀에 속해있어야 하며, 같은 팀에 속해 있는 사람들끼리는 전부 친구여야 한다. 학생들의 인간관계가 주어지면, 닭싸움을 위한 팀 정하기를 할 때, 최대 얼마나 많은 팀이 만들어질 수 있는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 학생의 수 n이 주어진다. 각 학생들은 1부터 n까지 번..
백준 1765 닭싸움 팀 정하기[JAVA]🔗링크 1765 닭싸움 팀 정하기 Gold2 ⚠️문제 닭싸움은 월드의 전통이다. 이번 캠프에서도 어김없이 닭싸움 대회가 열렸다. 그런데, 닭싸움을 하기 위해서는 반드시 누가 우리 편이고, 누가 우리 편이 아닌지를 알아야 할 것이다. 닭싸움의 팀을 정하는 원칙은, 평소 학생들의 인간관계에 따라 다음과 같이 정리할 수 있다. 내 친구의 친구는 내 친구이다. 내 원수의 원수도 내 친구이다. 이 때 두 학생이 친구이면 같은 팀에 속해있어야 하며, 같은 팀에 속해 있는 사람들끼리는 전부 친구여야 한다. 학생들의 인간관계가 주어지면, 닭싸움을 위한 팀 정하기를 할 때, 최대 얼마나 많은 팀이 만들어질 수 있는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 학생의 수 n이 주어진다. 각 학생들은 1부터 n까지 번..
2023.08.02 -
🔗링크 1068 트리 Gold5 ⚠️문제 트리에서 리프 노드란, 자식의 개수가 0인 노드를 말한다. 트리가 주어졌을 때, 노드 하나를 지울 것이다. 그 때, 남은 트리에서 리프 노드의 개수를 구하는 프로그램을 작성하시오. 노드를 지우면 그 노드와 노드의 모든 자손이 트리에서 제거된다. 예를 들어, 다음과 같은 트리가 있다고 하자. 현재 리프 노드의 개수는 3개이다. (초록색 색칠된 노드) 이때, 1번을 지우면, 다음과 같이 변한다. 검정색으로 색칠된 노드가 트리에서 제거된 노드이다. 이제 리프 노드의 개수는 1개이다. 입력 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (..
백준 1068 트리[JAVA]🔗링크 1068 트리 Gold5 ⚠️문제 트리에서 리프 노드란, 자식의 개수가 0인 노드를 말한다. 트리가 주어졌을 때, 노드 하나를 지울 것이다. 그 때, 남은 트리에서 리프 노드의 개수를 구하는 프로그램을 작성하시오. 노드를 지우면 그 노드와 노드의 모든 자손이 트리에서 제거된다. 예를 들어, 다음과 같은 트리가 있다고 하자. 현재 리프 노드의 개수는 3개이다. (초록색 색칠된 노드) 이때, 1번을 지우면, 다음과 같이 변한다. 검정색으로 색칠된 노드가 트리에서 제거된 노드이다. 이제 리프 노드의 개수는 1개이다. 입력 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (..
2023.07.30 -
🔗링크 18430 무기 공학 gold4 ⚠️문제 공학자 길동이는 외부의 침략으로부터 마을을 지킬 수 있는 부메랑 무기를 개발하는 공학자다. 길동이는 부메랑 제작을 위한 고급 나무 재료를 구했다. 이 나무 재료는 NxM크기의 직사각형 형태이며 나무 재료의 부위마다 그 강도가 조금씩 다르다. 예를 들어 나무 재료의 크기가 2x3일 때는 다음과 같이 총 6칸으로 구성된다. 길동이는 이처럼 넓은 사각형 형태의 나무 재료를 잘라서 여러 개의 부메랑을 만들고자 한다. 그리고 부메랑은 항상 3칸을 차지하는 ‘ㄱ’모양으로 만들어야 한다. 따라서 부메랑의 가능한 모양은 다음과 같이 총 4가지다. 이때 부메랑의 중심이 되는 칸은 강도의 영향을 2배로 받는다. 위 그림에서 노란색으로 칠한 부분이 ‘중심이 되는 칸’이다. 예..
백준 18430 무기공학[JAVA]🔗링크 18430 무기 공학 gold4 ⚠️문제 공학자 길동이는 외부의 침략으로부터 마을을 지킬 수 있는 부메랑 무기를 개발하는 공학자다. 길동이는 부메랑 제작을 위한 고급 나무 재료를 구했다. 이 나무 재료는 NxM크기의 직사각형 형태이며 나무 재료의 부위마다 그 강도가 조금씩 다르다. 예를 들어 나무 재료의 크기가 2x3일 때는 다음과 같이 총 6칸으로 구성된다. 길동이는 이처럼 넓은 사각형 형태의 나무 재료를 잘라서 여러 개의 부메랑을 만들고자 한다. 그리고 부메랑은 항상 3칸을 차지하는 ‘ㄱ’모양으로 만들어야 한다. 따라서 부메랑의 가능한 모양은 다음과 같이 총 4가지다. 이때 부메랑의 중심이 되는 칸은 강도의 영향을 2배로 받는다. 위 그림에서 노란색으로 칠한 부분이 ‘중심이 되는 칸’이다. 예..
2023.07.29 -
주니어 자바 개발자를 위한 100가지 질문 평소에 조금씩 자바 공부를 하고 있는데 기초적인 부분에 대해 너무 많이 모른다는 생각을 자주 했다. 그러던 와중 커리어리에 올라와 있는 조서희님의 주니어 자바 개발자를 위한 100가지 질문이라는 글을 보았다. 글을 보니 아직 모르는 내용도 많고 중요한 내용도 많은 것 같아 따로 정리하려고 한다. 처음 보시는 분들은 질문에 대해 먼저 고민해보고 토글을 열어 보는 것을 추천한다. 또한 답변의 정확하지 않을 수 있으므로 피드백은 환영! 기초 📌 JDK와 JRE의 차이점은 무엇입니까? 더보기 JRE(Java Runtime Envieronment): 자바 실행 환경이다. JVM(Java Virtual Machine)와 Java binaries, java 클래스 라이브러리..
👶주니어 자바 개발자를 위한 100가지 질문-기초주니어 자바 개발자를 위한 100가지 질문 평소에 조금씩 자바 공부를 하고 있는데 기초적인 부분에 대해 너무 많이 모른다는 생각을 자주 했다. 그러던 와중 커리어리에 올라와 있는 조서희님의 주니어 자바 개발자를 위한 100가지 질문이라는 글을 보았다. 글을 보니 아직 모르는 내용도 많고 중요한 내용도 많은 것 같아 따로 정리하려고 한다. 처음 보시는 분들은 질문에 대해 먼저 고민해보고 토글을 열어 보는 것을 추천한다. 또한 답변의 정확하지 않을 수 있으므로 피드백은 환영! 기초 📌 JDK와 JRE의 차이점은 무엇입니까? 더보기 JRE(Java Runtime Envieronment): 자바 실행 환경이다. JVM(Java Virtual Machine)와 Java binaries, java 클래스 라이브러리..
2023.07.17 -
✅SLF4J Simple Logging Facade for Java 💡다양한 로깅 프레임워크에 대한 추상화(인터페이스) 역할 💡단독으로 사용 불가능 💡최종 사용자가 배포시 원하는 구현체를 선택 Bridge 다른 로깅 API로의 Logger 호출을 SF4J 인터페이스로 연결하여 SLF4J API가 대신 처리할 수 있도록 하는 일종의 어댑터 역할을 하는 라이브러리 SLF4J API(인터페이스) 로깅에 대한 추상 레이어(인터페이스)를 제공한다. 로깅 동작에 대한 역할을 수행할 추상 메서드를 제공한다. 추상클래스이기 때문에 이 라이브러리만 단독적으로 쓰일 수 없다. Binding SLF4J 인터페이스를 로깅 구현체와 연결하는 어탭터 역할을 하는 라이브러리. SJF4J API를 구현한 클래스에서 Binding으로..
SLF4J + Log4j2 설정해보기✅SLF4J Simple Logging Facade for Java 💡다양한 로깅 프레임워크에 대한 추상화(인터페이스) 역할 💡단독으로 사용 불가능 💡최종 사용자가 배포시 원하는 구현체를 선택 Bridge 다른 로깅 API로의 Logger 호출을 SF4J 인터페이스로 연결하여 SLF4J API가 대신 처리할 수 있도록 하는 일종의 어댑터 역할을 하는 라이브러리 SLF4J API(인터페이스) 로깅에 대한 추상 레이어(인터페이스)를 제공한다. 로깅 동작에 대한 역할을 수행할 추상 메서드를 제공한다. 추상클래스이기 때문에 이 라이브러리만 단독적으로 쓰일 수 없다. Binding SLF4J 인터페이스를 로깅 구현체와 연결하는 어탭터 역할을 하는 라이브러리. SJF4J API를 구현한 클래스에서 Binding으로..
2023.07.05 -
아래의 글은 네이버 캠퍼스 핵데이 Java 코딩 컨벤션을 기준으로 작성된 글입니다. ▶중괄호 K&R 스타일로 중괄호 선언 클래스 선언, 메서드 선언, 조건/반복문 등의 코드 블럭을 감싸는 중괄호에 적용되는 규칙이다. 중괄호 선언은 K&R 스타일을 따른다. 줄의 마지막에서 시작 중괄호를 ‘{’ 를 쓰고 열고 새줄을 삽입한다. 블럭을 마친후에는 새줄 삽입 후 중괄호를 닫는다. else, catch, finally, while(do while)은 닫는 중괄호와 같은 줄에 선언 //Bad Example public class SearchConditionParser { public boolean isValidExpression(String exp) { if (exp == null) { return false; }..
자바 코드 컨벤션 (2)아래의 글은 네이버 캠퍼스 핵데이 Java 코딩 컨벤션을 기준으로 작성된 글입니다. ▶중괄호 K&R 스타일로 중괄호 선언 클래스 선언, 메서드 선언, 조건/반복문 등의 코드 블럭을 감싸는 중괄호에 적용되는 규칙이다. 중괄호 선언은 K&R 스타일을 따른다. 줄의 마지막에서 시작 중괄호를 ‘{’ 를 쓰고 열고 새줄을 삽입한다. 블럭을 마친후에는 새줄 삽입 후 중괄호를 닫는다. else, catch, finally, while(do while)은 닫는 중괄호와 같은 줄에 선언 //Bad Example public class SearchConditionParser { public boolean isValidExpression(String exp) { if (exp == null) { return false; }..
2023.06.30 -
아래의 글은 네이버 캠퍼스 핵데이 Java 코딩 컨벤션을 기준으로 작성된 글입니다. 📁파일 공통 요건 파일 끝에 개행 추가 파일의 마지막은 새줄 문자 LF로 끝나야한다. POSIX에 명시되어 있으며, 모든 표준이 이에 따르므로 오류가 발생할 수 있다. 🆕이름 대문자로 표기할 약어 명시 약어의 중간단어를 소문자로 표기하고 프로젝트 별로 모두 대문자로 표기할 약어의 목록을 명시하는 방식이 가독성을 높이고 규칙을 단순화하는데 유리하다. 패키지 이름은 소문자로 구성 패키지 이름은 소문자를 사용하여 작성한다. 단어별 구분을 위해 언더바나 대문자를 섞지 않는다. //Bad Example package com.navercorp.apiGateway package com.navercorp.api_gateway //Goo..
자바 코드 컨벤션 (1)아래의 글은 네이버 캠퍼스 핵데이 Java 코딩 컨벤션을 기준으로 작성된 글입니다. 📁파일 공통 요건 파일 끝에 개행 추가 파일의 마지막은 새줄 문자 LF로 끝나야한다. POSIX에 명시되어 있으며, 모든 표준이 이에 따르므로 오류가 발생할 수 있다. 🆕이름 대문자로 표기할 약어 명시 약어의 중간단어를 소문자로 표기하고 프로젝트 별로 모두 대문자로 표기할 약어의 목록을 명시하는 방식이 가독성을 높이고 규칙을 단순화하는데 유리하다. 패키지 이름은 소문자로 구성 패키지 이름은 소문자를 사용하여 작성한다. 단어별 구분을 위해 언더바나 대문자를 섞지 않는다. //Bad Example package com.navercorp.apiGateway package com.navercorp.api_gateway //Goo..
2023.06.30