일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- js
- CSS
- 알고리즘 문제
- Django
- 알고리즘
- 파이썬
- java
- DRF
- 알고리즘 풀이
- django widget
- AWS
- django rest framework
- Algorithm
- Git
- 장고
- 알고리즘 연습
- 백준
- API
- c++
- PYTHON
- react
- Baekjoon
- web
- django ORM
- 파이썬 알고리즘
- form
- javascript
- MAC
- es6
- HTML
- Today
- Total
목록파이썬 (15)
수학과의 좌충우돌 프로그래밍
안녕하세요 강민성입니다. 오늘은 오랜만에 알고리즘 문제를 들고 와봤습니다. 겨울방학 동안 백준 사이트에 있는 문제를 풀어보고자 하는데 좋은 문제가 있으면 많이 포스팅 하도록 하겠습니다. 오늘 소개할 문제는 1463번 '1로 만들기' 라는 문제 입니다. 문제부터 보도록 하겠습니다. 문제는 생각보다 간단합니다. 3가지 연산만 골고루 써서 1을 만들어 주면 되는 것이죠. 그래서 문제없이 코드를 작성하였습니다. 123456789101112131415X = int(input()) count = 0while X!=1: print(X) if X % 3 == 0: X //=3 count += 1 elif X % 2 == 0: X //= 2 count += 1 else: X -= 1 count += 1print(coun..
안녕하세요 강민성입니다. 파이썬 알고리즘을 공부하다가 헷갈린 부분이 있어 가볍게 포스팅을 하고자 합니다. find와 index를 알아보자! 문자열에서 find와 index는 거의 같은 역할을 합니다. 바로 문자열에서 원하는 문자나 문자열이 어디 있는지를 알려주는 것이죠. 위치를 반환할 때는 index 값을 반환하게 됩니다. 1234a = "ssungkang" print (a.index("k")) # 5print (a.find("k")) # 5cs 다음과 같이 문자열 a에서 k를 찾고자 한다면 그에 해당하는 index 값을 return 하게 되는 것이죠. 그렇다면 둘의 차이는 무엇일까요? 차이 역시 간단합니다. find 같은 경우에는 찾는 문자나 문자열이 없을 경우에는 -1 을 return 하게 됩니다. ..
안녕하세요 강민성입니다. 오늘은 유클리드 알고리즘과 그 확장에 대해서 알아보도록 하겠습니다. 유클리드 알고리즘이란? 먼저 유클리드 알고리즘이란 유클리드 호제법이라고도 하며 두 수에 대해서 최대공약수를 구하는 방법입니다. 두 수가 일반적인 방법으로 최대 공약수를 구하기 너무 커졌을 때 이 유클리드 알고리즘을 사용하면 보다 쉽게 구할 수 있습니다. 이제 유클리드 알고리즘을 살펴보면 두 수 a,b에 대해서(a>b), a = q * b + r 라 하면 q 는 몫, r은 나머지가 됩니다. 이 때, gcd(a,b) = gcd(b,r) 이 성립하고 이와 같은 과정을 계속 거쳐 나머지가 0이 되었을 때 나누는 수가 a,b의 최대공약수에 만족하게 됩니다. 예시를 통해서 알아볼까요? 240꽈 46의 최대공약수를 구한다고 ..
안녕하세요 강민성입니다. 오늘은 파이썬 변수의 유효 범위에 대해서 알아보도록 하겠습니다. 먼저 scoping rule 이란 변수의 접근이 가능한 범위를 뜻합니다. 이 scope를 결정하는 방식에는 크게 두 가지로 나눌 수 있는데 static scoping 과 dynamic scoping 입니다. 그 중에서 dynamic scoping 에 대해서 알아보도록 하겠습니다. dynamiic scoping를 사용하는 대표적인 예가 바로 python 이죠. 그래서 python 언어를 통해 알아보겠습니다. 파이썬에서 변수는 4가지 경우가 존재합니다. LEGB 가 각각에 해당되는데 이에 대해서 먼저 알아보도록 하겠습니다. Local : 함수 내부의 공간 Enclosing Function Local : 함수를 내포하는 ..
안녕하세요 강민성입니다. 저번 시간에 이어서 클래스와 인스턴스에 대해서 더 알아보도록 하겠습니다. 오늘 알아볼 개념은 바로 메소드라는 개념입니다. 메소드란? 메소드는 그 전까지 들어본 적이 없지만 우리가 흔히 사용하는 함수라고 생각하면 됩니다. 함수는 함수지만 클래스 안에서 정의되어 클래스의 인스턴스에만 적용될 수 있는 함수를 메소드라고 부릅니다. 우선 저번 시간에 배웠던 내용을 다시 살펴보도록 하겠습니다. 12345678910111213141516171819class Human(): pass def define_Human(job,age): person = Human() person.job = job person.age = age return person Human.define = define_Human..
안녕하세요 강민성입니다. 저번 시간에 이어서 클래스와 인스턴스에 대해서 알아보도록 하겠습니다. 모델링이란? 클래스를 사용하는 이유는 현실의 개념을 더 쉽게 코드로 표현하기 위해서 입니다. 저번 시간에 이어서 Human 클래스를 선언하고 이에 현실에 개념을 적용시켜서 추가해보도록 하겠습니다. 1234567class Human(): pass person = Human()person.job = 'student'person.age = 23cs Human 클래스에 대한 person 객체를 만들어주고 직업, 나이를 지정해주었습니다. pass는 신경 안쓰셔도 상관없습니다. 그런데 사람이 여러 명일 경우에 모두 직업, 나이가 있을 텐데 다음과 같은 방식으로 선언을 하면 번거로울 겁니다. 그래서 사람을 정의해주는 함수를..
안녕하세요 강민성입니다. 오늘은 파이썬의 클래스와 인스턴스에 대해서 알아보도록 하겠습니다. 객체지향언어에서는 빼놓을 수 없는 개념이죠. 파이썬 언어로 들어가기 전에 현실세계에서 무슨 개념과 유사한지 부터 알아보도록 하겠습니다. 클래스와 인스턴스란? 다음과 같이 두 명의 인간이 있습니다. 한 명은 강사, 한 명은 학생이죠. 그러면 둘은 같다고 할 수 있을까요? 당연히 상황에 따라서 달라질 겁니다. 둘은 강사와 학생이라는 입장에서는 엄연히 다릅니다. 부가 설명을 할 것도 없이 강사와 학생은 이름도, 나이도, 성별도 많은 것이 다를 겁니다. 하지만 둘은 인간이라는 관점에서 같은 인간의 범주로 묶을 수 있습니다. 지금까지의 예시에서 인간이 바로 클래스, 강사와 학생은 인간이라는 클래스의 인스턴스가 됩니다. 그러..
안녕하세요 강민성입니다. 이번에 풀 문제는 2018서머코딩 알고리즘 문제 중 하나 입니다. 대회에서 나오는 문제들을 보면 매번 저런 문제를 어떻게 만들어내는지 그저 신기할 따름입니다. 문제를 이해하고 코드를 짜는 것도 적지 않은 시간이 걸리곤 하는데... 요즘 주변에 취업원서 넣고 코딩테스트 보러 가는 사람들이 많아서 그런지 알고리즘의 중요성을 새삼 다시 깨닫습니다. 1차에서 떨어지는 경우도 비일비재 하더라고요. 그러면 문제 보도록 하겠습니다. [ 문제 ] xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 자연수를 하나씩 부여받습니다. 각 사원은 딱 한 번씩..
안녕하세요 강민성입니다. 이번엔 간단한 문제지만 배울 점이 있어서 쉬운 문제를 하나 들고 왔습니다. 문제 한 번 보실까요? [문제] 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 4 이상, 20이하인 문자열입니다. 입출력 예 phone_number return 01033334444 *******4444 027778888 *****8888 문제를 푸는데는 크게 어려움이 없었습니다. 12345678910111213def solution(phone_number):..
안녕하세요 강민성입니다. 제목에서도 보셨겠지만 오늘 다뤄볼 주제는 '시저암호' 입니다. 시저암호는 들어본 분들도 계실꺼예요. 시저암호는 카이사르 암호라고도 하는데 암호 중에 가장 간단한 암호라고 할 수 있습니다. 암호화 하는 방식은 문제에 나와 있으니 문제를 보며 알아보도록 하겠습니다. [ 문제 ] 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1만큼 밀면 a가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 제한 조건 공백은 아무리 밀어도 공백입니다. s는 알파벳 소문자, 대문자, 공백으로만 이루어..