본문 바로가기

분류 전체보기

(181)
객체지향적인 계산기 만들기 : 멘토님 코드와 나의 코드간의 개선점 비교 입출력 멘토님 코드음수 입력시에 재입력을 받도록 처리가 되어 있음if (firstNumber   세이프티 코딩 (Safety Coding) 적용문자열 비교 시 변수에 담지 않고, 해당 문자열 자체로 equals를 사용하여 비교함 -> 세이프티 코딩 (Safety Coding)널은 메서드를 사용하지 못하기 때문에 스트링으로 비교하면 프로그램이 종료됨NullPointerException 방지if ("exit".equals(sc.next())) { break; } 기존에 내가 작성한 코드변수명에 널이 들어갈 수 있기 때문에 위험함String exit = sc.nextLine(); exit = exit.toLowerCase(); ..
제네릭 타입제한과 필드에서의 값 전달 (feat : 계산기 과제) 제네릭 타입 제한제네릭 타입 제한은 클래스, 메서드, 인터페이스 선언 부분에서만 가능함public class Calculator { private final List resultList = new ArrayList(); // T는 Number의 하위 타입} 클래스에서 T의 제한을 걸면, 타입의 제한이 클래스 내부 전체에 걸림public class Calculator { private final List resultList = new ArrayList(); // T는 Number의 하위 타입} -> 지난번에 내가 과제에서 수행했던 것처럼 메서드 수준에서 제네릭 제한을 걸어버리면, results 에 타입을 Number로 지정해서 해결했어야 했음 지난번 짠 코드private List results ..
자바 알고리즘 연습(8) 부족한 금액 계산하기class Solution { public long solution(int price, int money, int count) { long answer = 0; long s = 0; for (int i = 1; i 0){ return 0; } else { answer = (money - s) * -1; return answer; } }} 문자열 다루기 기본숫자로만 이루어졌는지 확인하는 함수 : "asdfs".isdigit()문자로만 이루어졌는지 확인하는 함수 : "234".isalpha(), Character.isDigit(s.charAt(i))def ..
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 (동기화 지원)동기화 : 멀티스레드 환경에서는 여러 스레드가 동시에 실행되며, 같은 메모리 공간이나 데이터를 동시에 읽고/쓰기 가능 ..