분류 전체보기 58

[백준]#1546 평균

문제 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다. 출력 첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대..

CodingTest/백준 2023.11.13

[백준]#11720 숫자의 합 구하기

문제 N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. 출력 입력으로 주어진 숫자 N개의 합을 출력한다. 제한사항 1) 시간 : 1초 2) 메모리 : 256MB // 예시 입력1 11 10987654321 // 예시 출력1 46 // ------------------- // 예시 입력2 25 7000000000000000000000000 // 예시 출력2 7 1. 문제 분석하기 문제를 풀기 전에 초기 방향성 설정이 중요합니다. 1) 사용자로부터 데이터를 입력 받는다 → scanner.next계열 2) 데이터 크기로 인해 int / long 타입 선언 불..

CodingTest/백준 2023.11.10

코테 준비를 위한 시간복잡도

*참고소스는 최하단 참고 바랍니다. 1. 시간복잡도란? 계산 복잡도 이론에서 시간 복잡도는 문제를 해결하는데 걸리는 시간과 입력의 함수 관계를 가리킨다. 컴퓨터과학에서 알고리즘의 시간복잡도는 입력을 나타내는 문자열 길이의 함수로서 작동하는 알고리즘을 취해 시간을 정량화하는 것이다. 알고리즘의 시간복잡도는 주로 빅-오 표기법을 사용하여 나타내며, Pan Bubilek이 빅-오 표기법은 계수와 낮은 차수의 항을 제외시키는 방법이다. (위키백과) 말이 어렵지만, 결국은 시간복잡도는 로직 수행시간과 비례하니 시간복잡도 수치가 작을수록 효율적인 알고리즘이다! 라는 의미입니다. 일반적으로 코딩테스트에서 시간복잡도와 관련 있는 건, 주어진 문제를 해결하기 위한 연산횟수이고, 이때 수행시간은 1초 동안 1억번의 연산 ..

인텔리제이 콘솔 하이라이트 적용하기 (application.properties)

설정방법 application.properties spring.output.ansi.enabled=always 적용화면 결과 https://www.inflearn.com/questions/169942/%EC%9D%B8%ED%85%94%EB%A6%AC%EC%A0%9C%EC%9D%B4-%EC%BB%A4%EB%AE%A4%EB%8B%88%ED%8B%B0%EC%97%90%EC%84%9C-%EC%BD%98%EC%86%94-%EC%83%89%EC%83%81-%EC%9E%85%ED%9E%88%EB%8A%94-%EB%B0%A9%EB%B2%95 인텔리제이 커뮤니티에서 콘솔 색상 입히는 방법 - 인프런 | 질문 & 답변 커뮤니티 버전에서도 콘솔에 색상 입히는 방법입니다.며칠 전에 어떤 수강생 분이 질문하셔서 얼티메이트vs커..

알쓸신잡 2023.11.09

static 메소드와 instance 메소드의 메모리 생성 시점이 다르다?

※ 출처는 하단 참고 하시기 바랍니다. 우선 자바 프로그램 실행과정을 간단하게 살펴봅시다. 1. 자바 프로그램 실행과정 자바 애플리케이션을 개발하고 실행하기 위한 자바 플랫폼의 3대 구성 요소로는, 1) JDK 2) JVM 3) JRE 이 있습니다. 실행과정은 크게 컴파일 환경과 런타임 환경으로 나뉩니다. 컴파일 타임 환경 1) JDK Compiler를 통해 자바소스코드(.java)를 JVM이 읽을 수 있도록 자바 바이트 코드(.class)로 변환하는 역할 2) 실행파일 생성되는 과정 런타임 환경 1) 자바 애플리케이션이 디바이스 또는 클라우드 환경에서 실행되는 데 필요한 리소스를 확보하도록 보장하는 역할 2) 프로그램 실행 과정 2. static 메소드와 instance 메소드의 메모리 생성 시점이 다..

Spring 2023.11.08

클래스 메소드 vs 인스턴스 메소드 단순 코드 비교

자바 클래스 기본 구조와 용어 . 이전 시간에 배운 내용을 복기해보면, 메소드는 파이썬의 함수처럼 기능과 행위를 의미합니다. 메소드는 static 유무에 따라 나뉘는데요. 살펴보겠습니다. 1. 클래스 메소드(Static Methods) 메소드 생성시 static이 붙은 메소드 메소드 호출 전 해당 클래스의 인스턴스를 생성할 필요가 없다. (객체 생성 X) 'Class명.메소드' 로 사용하면 된다. 장점 : 메모리 loss를 줄일 수 있고 과부하 방지 For example : Math.abs(-5); or Member.get() // API 문서 : https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html 2. 인스턴스 메소드(Instance Metho..

Spring 2023.11.08

자바 클래스 기본 구조와 용어

자바파일(어떤 클래스)을 생성하게 되면 기본구조는 아래와 같습니다. 클래스 { //필드 // 생성자 // 메서드 } 1. 용어 설명 객체 생성에 있어 필드와 생성자가 필요합니다. 필드는 속성을 의미하고, 해당 클래스가 가지고 있는 기본정보(객체의 성질)를 뜻합니다. 생성자는 객체 생성과 동시에 객체의 유효함을 보장하는 역할을 합니다. (모든 클래스는 하나의 생성자 이상을 가져야합니다) 메서드는 기능/행위를 의미합니다. 파이썬에서는 기능을 구현하기 위해 함수를 정의하는데 자바에서는 함수라는 표현대신에 메서드라는 용어를 사용합니다. 2. 코드를 통해 알아보는 기본 구조 public class MemberInfo { // 필드 // 값을 정해주지 않아서 null String name; // 생성자 // NPE..

Spring 2023.11.07

STEP3 회원 리포지토리 메모리 구현체 생성

*인프런 강의 중 일부 예제 코드를 발췌하였으며, 주석을 통해 학습 이해도를 높이는 방향으로 스터디하고 있습니다. . 설계한 인터페이스를 활용하여 구현체(데이터 저장소)를 직접 생성해봅니다. 1. MemoryMemberRepository import domain.Member; import java.util.*; public class MemoryMemberRepository implements MemberRepository { // map : 리스트/배열을 순차적으로 요소의 값을 구하는게 아니라 key-value 얻기 위함 // Key : id // Value : Member (필드 확장 고려한 member 객체 인스턴스) ★★ private static Map store = new HashMap(); ..

Spring 2023.11.06

STEP2 회원 리포지토리 인터페이스 생성

*인프런 강의 중 일부 예제 코드를 발췌하였으며, 주석을 통해 학습 이해도를 높이는 방향으로 스터디하고 있습니다. 인터페이스 개발이 왜 필요한가? The point is to separate the API (what to do) from the implementation (how to do it). 요지는 역할과 구현을 구분하는 것입니다. 백엔드 개발 시에 자주 접할 상황을 예시로 들겠습니다. DB 방식(RDB or NoSQL)이 정해지지 않은 상황인데 개발은 기간내로 해야하는 상황입니다. 난감하겠지만 이때 인터페이스 설계를 통해 개발을 진행할 수 있습니다. DB에 접근하고 도메인 객체를 DB에 저장관리하는 리포지토리 인터페이스를 우선 구축하고, 별도 구현체 생성하여 가벼운 메모리 기반의 데이터 저장소로..

Spring 2023.11.06

STEP1 회원 도메인 객체 생성

*인프런 강의 중 일부 예제 코드를 발췌하였으며, 주석을 통해 학습 이해도를 높이는 방향으로 스터디하고 있습니다. 회원을 등록/조회하는 서비스를 개발하고자 합니다. 회원의 id와 name을 등록하고 조회할 수 있도록 회원 도메인 객체를 생성해보는 실습입니다. 1. 코드 public class Member { // domain 역할: 회원 이름과 id 등록 및 조회 // 회원가입시 회원 이름 private String name; // 회원가입시 회원 id : 통상 시스템에 의해 결정됨 private Long id; // name 조회 public String getName() { return name; } // name 등록 public void setName(String name) { this.name ..

Spring 2023.11.06