본문 바로가기

파이썬

(16)
[프로그래머스] 코딩테스트 Lv.1 추억점수 자바 알아둬야 할 개념 1. HashMap : HashMap은 Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있고, Map은 키와 값으로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조이다. 2. int[숫자] answer : 숫자 길이만큼의 정수 값이 들어가 있는 배열 import java.util.*; class Solution { public int[] solution(String[] name, int[] yearning, String[][] photo) { int[] answer = new int[photo.length] ; HashMap map = new HashMap(); for(int i = 0; i
[프로그래머스] 코딩테스트 Lv.1 덧칠하기 문제 어느 학교에 페인트가 칠해진 길이가 n미터인 벽이 있습니다. 벽에 동아리 · 학회 홍보나 회사 채용 공고 포스터 등을 게시하기 위해 테이프로 붙였다가 철거할 때 떼는 일이 많고 그 과정에서 페인트가 벗겨지곤 합니다. 페인트가 벗겨진 벽이 보기 흉해져 학교는 벽에 페인트를 덧칠하기로 했습니다. 넓은 벽 전체에 페인트를 새로 칠하는 대신, 구역을 나누어 일부만 페인트를 새로 칠 함으로써 예산을 아끼려 합니다. 이를 위해 벽을 1미터 길이의 구역 n개로 나누고, 각 구역에 왼쪽부터 순서대로 1번부터 n번까지 번호를 붙였습니다. 그리고 페인트를 다시 칠해야 할 구역들을 정했습니다. 벽에 페인트를 칠하는 롤러의 길이는 m미터이고, 롤러로 벽에 페인트를 한 번 칠하는 규칙은 다음과 같습니다. 롤러가 벽에서 벗..
[Python] 파이썬 실습2 - 회원전용 도서관리 키오스크 만들기 : 회원 번호는 문자열 무엇이든 상관없이 등록 : 서비스 종료 시 프로그램 자체 종료 [서비스 이용을 위한 회원 인증] 1. 회원번호 등록 2. 회원 인증 3. 서비스 종료 : 도서 정보 : 도서번호, 도서제목, 재고권수 : 도서 상태 확인 : 특정 도서에 대한 정보 조회(도서번호, 도서제목, 현재권수/전체권수) [도서 서비스 메뉴] 1. 도서 입고 2. 도서 대출 3. 도서 반납 4. 도서 상태 확인 5. 도서 전체 목록 확인 6. 도서 서비스 종료(회원 인증 메뉴로 갑니다.) 저번에 한 코드를 더 발전시켜보았다. 1. 유저정보 등록 함수 : user_register() - user_id 값 입력 - users 리스트 생성 후 값 넣기(append) 2. 유저인증 함수 : user_check() - 입..
[Python] 파이썬 알고리즘 - 이터레이터(Iterator), readLine(), nextLine() 이터레이터(Iterator) 파이썬에서 반복 가능한 객체(클래스)를 표현하는 데 사용되는 인터페이스 __iter__() : 이터레이터 객체 자체를 반환 __next__() : 다음 요소를 반환, 더 이상 반환할 요소가 없으면 raise StopIteration 예외를 발생시켜 순회를 종료 이터레이터는 init() 함수와 next() 함수를 이용하여 반복(Iterator)을 수행함 이터레이터 기능은 반복문(for or while)을 사용해야만 작동하는 기능 최초 __iter__() 함수를 호출하고, 출력 시 __next__() 함수가 한번씩 수행하면서 값을 반환받아서 출력함 한번 반환된 후 메모리는 초기화되며, 다음 반복시 다시 메모리 사용 메모리를 효율적으로 활용할 수 있음 java의 readLine()..
[Python] 파이썬 알고리즘 - 제너레이터(Generator) 제너레이터(Generator) 함수를 이용해서 이터레이터(반복)의 기능을 구현 이터레이터와 동일하게 호출 시점에만 메모리를 사용하고 사용이 끝나면 소멸된다. 반환할 때 사용하는 명령어는 return이 아닌, yield를 사용한다. 이터레이터와 동일하게 전체 또는 next() 한건씩 출력 가능 메모리를 효율적으로 쓰고 싶을 때 사용(보통 시스템 구축할 때 많이 사용) 이터레이터(클래스 기반), 제너레이터(함수 기반) def simple_generator(): ### 첫번째 반환할 값 yield 1 ### 두번째 반환할 값 yield 2 ### 세번째 반환할 값 yield 3 제너레이터 전체 출력하기 - 제너레이터에서는 함수를 객체로 인지하고 사용한다. - 함수를 생성한다는 의미 ..
[Python][파이썬] 고객 정보 관리 시스템 만들기 실습 5 - class, structure, os라이브러리 파이썬에도 class가 있다는 것을 알게 되었고 class를 사용하면 어떤 점들이 좋은지 알아보고 실습 예제를 class를 사용하여 바꾸어 보자. 클래스를 사용하는 이유 코드의 구조화 및 조직화: 클래스를 사용하면 코드를 더 모듈화하고 구조화할 수 있다. 재사용성: 클래스를 사용하면 비슷한 기능을 하는 코드를 여러 곳에서 재사용할 수 있다. 클래스의 인스턴스를 생성하여 다양한 상황에서 동일한 코드를 사용할 수 있다. 상태(데이터)와 행동(메서드)의 결합: 클래스는 상태(멤버 변수)와 행동(메서드)을 함께 묶어놓는다. 추상화 및 캡슐화: 클래스는 객체 지향 프로그래밍의 핵심 개념 중 하나인 추상화와 캡슐화를 제공한다. 추상화는 복잡한 시스템을 단순화하고 필요한 부분에 중점을 두어 핵심 개념을 강조하는 것을..
[Python][파이썬]예외 처리 프로그램을 만들다 보면 수없이 많은 오류를 만나게 된다. 자바에서는 오류 발생 시 대처하는 try-catch를 사용했는데 파이썬에서는 어떻게 사용하는지 방법을 알아 보았다. 예외처리 오류를 처리 할 수 있게끔 지원 한다. 프로그램의 정상적인 흐름 → 예외발생 → 예외처리 (프로그램의 실행을 계속 할 수 있는 다른 경로를 제공한다.) try: 실행문1, 실행문2 ... except 발생오류 as 오류변수: 에러가 났을 때에 실행 할 실행문 에러 종류 IOError : 파일을 열 수 없을때 발생 ImportError : 파이썬 모듈을 찾을 수 없을때 발생 ValueError : 연산이나 내장함수에서 인수가 적절치 않은 값을 가지고 있을때 발생 KeyboardInterrupt : 사용자가 인터럽트키 누르면 발..
[Python][파이썬]객체 지향 프로그래밍(OOP) 파이썬이 객체 지향 프로그래밍이라고 하는데 그게 무슨 말인지 의문이 생겼다. 그래서 찾아보니 프로그래밍 언어들 중 객체지향언어가 있고 절차지향언어가 있었다. 이 둘에 대해 알아보자. 절차지향 프로그래밍 (Procedural Programming) 개체를 순차적으로 처리하여 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 절차 지향 프로그래밍은 프로시저 procedure를 기반으로 하는 프로그래밍 방법이다. 예 : 자동차는 엔진, 차체, 핸들, 의자, 바퀴 순으로 차례대로 만들어져야 한다. 서로 분리되어도 안 되고, 순서가 틀려도 안 되는데 절차지향 프로그래밍 역시 이와 같다. 장점 : 실행 속도가 빠르다. 단점 : 유지보수의 어려움, 엄격하게 순서가 정해져 있어 비효율적 c언어 절차지향 프로그래밍..