본문 바로가기

전체 글

(183)
2609 최대공약수와 최소공배수 / 정수론 및 조합론 최소공배수 -> 최대공약수 * 첫번째 수를 최대공약수로 나눈 몫 * 두번째 수를 최대공약수로 나눈 몫최대 공약수 -> 둘 중에 더 큰 범위까지의 수 중에서 두 수가 모두 나머지가 0이 되는 수number1, number2 = map(int, (input().split()))end = max(number1, number2)max_number = 0for i in range(1, end+1): if number1 % i == 0 and number2 % i == 0: max_number = imin_number = (number1 // max_number) * (number2 // max_number) * max_numberprint(max_number)print(min_number)
파이썬 알고리즘 연습(1) 행렬의 덧셈def solution(arr1, arr2): answer = [] for i in range(len(arr1)): row = [] for j in range(len(arr1[i])): row.append(arr1[i][j] + arr2[i][j]) answer.append(row) return answer 직사각형 별찍기a, b = map(int, input().strip().split(' '))for i in range(b): for j in range(a): print("*", end="") print() 최대공약수와 최소공배수def solution(n, m): answer = [] ..
객체지향적인 계산기 만들기 : 멘토님 코드와 나의 코드간의 개선점 비교 입출력 멘토님 코드음수 입력시에 재입력을 받도록 처리가 되어 있음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번째 자리까지 반올림해서 출력..