본문 바로가기

전체 글

(282)
10814 나이순 정렬 / 정렬 n = int(input())members = []sequence = 1for _ in range(n): age, name = input().split() members.append([int(age), name, sequence]) sequence += 1members.sort(key = lambda m : (m[0], m[2]))for i in members: print(str(i[0]) + " " + str(i[1])) JAVAsc.next() : 입력 스트림에서 공백을 기준으로 하나의 단어를 읽어옴Arrays.sort() : 안정 정렬 특성을 가짐 -> 정렬 기준이 같은 값들에 대해 기존 순서를 유지하는 정렬 즉, 입력받은 순서대로 유지import java.util.Scanne..
자바 알고리즘 연습(7) 가운데 글자 가져오기String을 char배열로 : 변수명.charAt(index접근 가능);class Solution { public String solution(String s) { String answer = ""; if (s.length() % 2 == 0){ answer += s.charAt(s.length() / 2 - 1); answer += s.charAt(s.length() / 2); } else { answer += s.charAt(s.length() / 2); } return answer; }} 수박수박수박수박수박수?class Solution { p..
2108 통계학 / 정렬 / 딕셔너리 Dictionarykey- value 로 이루어진 순서가 없는 자료형선언 : f = {} #최빈값을 저장할 딕셔너리삽입 : f[n] = 1print(student.items()) # 출력: dict_items([('name', 'John'), ('age', 21), ('year', 3)])print(student.keys()) # 출력: dict_keys(['name', 'age', 'year'])print(student.values()) # 출력: dict_values(['John', 21, 3]) 정답최빈값을 구하기 위해서 딕셔너리를 선언하여 입력around(값) -> 소수점 0번째 자리까지 반올림해서 출력 : 1.6. -> 2around(값, 1) ->  소수점 1번째 자리까지 반올림해서 출력..
2751 수 정렬하기 2 / 정렬 / 배열.sort(), 자바 Arrays.sort(배열) 파이썬 정렬오름차순 : 배열.sort()내림차순 : 배열.sort(reverse = True)n = int(input())num = []for _ in range(n): num.append(int(input()))num.sort()for i in num: print(i) 자바 정렬오름차순 : Arrays.sort(배열명)내림차순 :  Arrays.sort(배열명, Collections.reverseOrder());import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); ..
자바 알고리즘 연습(6) 음양 더하기class Solution { public int solution(int[] absolutes, boolean[] signs) { int answer = 0; for (int i = 0; i  핸드폰 번호 가리기String 길이 : length()Array 길이 : lengthString은 불변객체이기 때문에 문자열을 수정할 때마다 새로운 객체를 생성StringBuilder는 문자열을 수정해도 기존 객체를 그대로 사용단일스레드 환경에서만 사용 -> 멀티스레드는  위험 (동기화를 안함)멀티스레드 환경에서는 -> StringBuffer (동기화 지원)동기화 : 멀티스레드 환경에서는 여러 스레드가 동시에 실행되며, 같은 메모리 공간이나 데이터를 동시에 읽고/쓰기 가능 ..
Enum 및 예외처리를 적용한 계산기 만들기 기존 OperatorType연산자 클래스별로 연산자를 나타내는 char값만 존재함public enum OperatorType { ADD('+'), SUBTRACT('-'), MULTIPLY('*'), DIVIDE('/'); private final char operator; public char getOperator(){ return operator; } OperatorType(char operator) { this.operator = operator; }}public class ArithmeticCalculator { private OperatorType addOperator = OperatorType.ADD; priv..
Lambda & Stream을 이용하여 특정 값보다 큰 값들만 조회하기 LambdaLambda란 인스턴스를 생성하지 않고 작성할 수 있는 익명함수!메서드는 클래스에 포함되어야 하기 때문에 번거로운 제약들이 많음 → 람다의 등장으로 메서드를 변수처럼 다루는 것이 가능 → 람다를 통해서 메서드가 1급 객체가 됨 (이를 통해 자바는 객체지향프로그래밍 뿐만 아닌 함수지향 프로그래밍도 가능)1급객체 : 메서드(함수)를 변수, 인자, 리턴값에 할당 가능한 것람다식은 사실 메서드가 아닌, 익명 클래스의 객체사용법람다의 모든 매개변수 타입은 생략하는 것이 좋음매개변수가 하나라면 괄호도 생략  (a) -> a * a 이 아닌 a -> a * a실체(int a, int b) -> a > b ? a : b; 의 실제 모습은 아래와 같음 즉, 람다식은 익명 클래스의 객체new Objcet() {..
11651 좌표 정렬하기 2 / 정렬 / 자바 Arrays.sort() n = int(input())arrays = []for _ in range(n): x, y = map(int, input().split()) arrays.append((x, y))arrays.sort(key=lambda p: (p[1], p[0]))for x, y in arrays: print(x, y) Sortsort의 기본 -> 오름차순 정렬key는 정렬 기준을 반환하는 함수lambda : 인수1, 인수2, ...: 반환값key : [(3, 1), (2, 2), (1, 2), (2, 3), (1, 3)] -> 각각 생성된 key값에 의해서 오름차순으로 정렬되는 것 자바e1[0] = 1, e2[0] = 2일 때:e1[0] - e2[0]은 1 - 2 = -1-1은 음수이므로, e1이 e2..