일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- Python3
- Join
- 설계
- html
- 백준
- where
- 파이썬 몫
- Len
- Django
- 코딩테스트 연습
- 슬라이싱
- date_format
- GIT
- pcce 기출문제
- css
- 아이엠어바텐더
- count
- SQL 고득점 Kit
- YOLOv5
- List Comprehension
- 단어 공부
- 파이썬 슬라이싱
- 파이썬
- 프로젝트
- 프로그래머스
- ORDER BY
- sql
- 데이터
- map
- python
- Today
- Total
목록python (97)
nan + nan = 2nan
코드 입력 N = int(input()) # O가 연속한 개수에 따라 출력값을 설정 # ex) O 1개 = 1 , 2개 = 1 + 2, 3개 = 1 + 2 + 3 for i in range(N): answer = list(input()) sum = 0 pls = 1 for i in answer: if i == 'O': sum += pls pls += 1 else: pls = 1 print(sum) 식에 대한 구상은 머릿속에 세워놨는데, 이걸 어떻게 구현할지 의문이어서 타 블로그를 보고 참조해봤다. 항상 답변 개수를 입력하고 사용하지 않아 N을 받아 반복문으로 돌려주고, 그 안에서 answer라는 입력값을 받을 리스트를 만들어줬다. 그리고 각 값들을 다 넣어줄 sum과 개별 연속 문자의 합 'O'를 넣어줄..
코드 입력 N = int(input()) score = list( map( int, input().split() ) ) M_score = max(score) result = [] for i in score: result.append( i / M_score * 100 ) print(sum(result) / len(result)) 일단 문제부터 길다.. 과목 수는 사실상 보여주기 같다. 따로 사용할 일이 없고, score를 map과 int를 사용해 입력을 받고, list 형태로 감싸준다. 그리고 최대값을 max()를 이용해 미리 구해놓고, 새로운 값들을 입력할 list인 result를 생성한다. 그리고 for 반복문을 통해 score 내 점수들을 반복해서 해당 식에 적용시킬 수 있게 append를 사용한다...
백준 알고리즘 연습을 하면서 map 함수를 많이 사용하였는데, 해당 함수의 역할이나 느낌을 아직 정확히 알지 못 해서 다시 정리하기로 했다. O Map의 정의 - map은 리스트의 요소를 지정된 함수로 처리해주는 함수이며 원본 리스트를 변경하지 않고 새 리스트를 생성하는 특징을 가지고 있다. 이를 List에 적용하는 간단한 예를 보자. a = [1.2, 2.5, 3.7, 4.6] for i in range(len(a)): a[i] = int(a[i]) print (a) > [1, 2, 3, 4] 우선 for 에 range[len(a)]를 사용해 인덱스를 가져왔고, 가져온 인덱스로 각 요소에 접근해 int로 변환하여 다시 저장했다. 이는 사실 좀 번거로운 편이다. 이럴 때, map을 사용한다면..? A =..
코드 입력 # 10개 다른 수 입력 # 연산 값 중 서로 다른 값이 몇 개 있는지 출력 a = int(input()) % 42 b = int(input()) % 42 c = int(input()) % 42 d = int(input()) % 42 e = int(input()) % 42 f = int(input()) % 42 g = int(input()) % 42 h = int(input()) % 42 i = int(input()) % 42 j = int(input()) % 42 n_li = [a,b,c,d,e,f,g,h,i,j] set1 = set(n_li) n_list = list(set1) size = len(n_list) print(size) 뭔가 간소화할 수 있는 방법이 있겠지만, 아직 내 역량 부..
코드 입력 a = int(input()) b = int(input()) c = int(input()) t = list(str(a*b*c)) for i in range(10): print(t.count(str(i))) 상당히 나에겐 난이도 있는 문제였다. 특히 아직도 list와 str, int 개념에 대해 헷갈려하는 나에게 30분 이상을 소모하게 한 문제.. 처음 a,b,c를 각각 입력받고 입력받은 수들의 곱을 문자열로 치환한 다음, 다시 리스트로 묶어준다. 그렇게 되면 처음 곱한 수들이 문자열로 묶이고, 리스트에 넣으면서 각 자리 수마다 문자열로 인식이 되어 리스트에 저장이 된다. 그럼 이제 for문을 사용해 0 ~ 9까지의 i를 만들어주고, count라는 함수를 이용해 문자열로 치환한 i가 리스트의 각..
코드 입력 n_li = [ ] for i in range(1, 10): n_li.append( int( input() ) ) print(max(n_li)) print( n_li.index( max( n_li )) + 1 ) index 접근 했는데,. list에 대한 개념이 너무 부족하다. n.li라는 리스트 변수를 만들고, for문을 활용해서 9번 반복하는 알고리즘을 만든다. 그 다음, int(input())을 리스트에 append 해주는 방식. 나는 처음부터 list ( map ( int ... 이런 식에 꽂혀서 오류가 너무 많이 발생했다. 무튼 그렇게 max값은 자연스레 만들어주고, index라는 위치 반환 함수를 이용해 위치를 표현한다. 단, 0부터 시작하기 때문에 index값에 1을 더해준다. 조..
코드 입력 n = int( input() ) number = list( map( int, input().split() ) ) print( min(number), max(number) ) 굉장히 간단한 코드지만, 처음엔 좀 헷갈렸다. n과 number를 출력하고 min과 max를 쓰는 것까지는 어느정도 뽑아냈는데, 아직 확실히 list, int, str 에 대한 감이 부족한 것 같다. 처음엔 number에 list를 달지도 않았고, for 문을 사용해서 해야하나도 고민했다. 근데 그냥 간단했다. number 에 list 없이 jupyter로 출력을 해보니 16진수로 출력이 되었다. 그래서 list를 하는건가? map과 int로 정수형으로 만들어 list로 출력한다라고 생각해야겠다. 출처 : 백준 Onlin..
1. models.py - Class 생성 class Dept(models.Model): deptno = models.IntegerField() dname = models.TextField() loc = models.TextField() 2. Python manage.py makemigrations / migrate - Maria DB에서 해당 데이터베이스가 생성되었는지 확인 3. 해당 App의 urls.py - path 생성 urlpatterns = [ # 데이터를 입력하는 주소 path('form/', views.form), # 데이터를 저장하는 장소 path('proc/', views.proc), 4. views.py - def ~ ( request) 생성 def form(request): retu..
코드 입력 N = int(input()) count = 0 cf = N while N < 100: T = (N // 10) + (N % 10) # 8 2 6 New = (N % 10) * 10 + (T % 10) # 68 6 X 10 + 8 count += 1 N = New if New == cf: break print(count) 얼른 풀고 맥주 먹고 잘라 그랬는데 1시간을 소모한 문제.. 문제를 읽고 어느정도 로직은 머릿 속에 그려졌지만, formatting과 try / except, 정말 여러가지 방법을 사용해보았지만 무한반복에 빠지거나 머리가 빠지거나 둘 중 하나 결국 참조를 해보았다. count와 N에 동등한 값을 갖는 새로운 변수를 생성하는 것이 답이었다. 26 이라면, 2 + 6 = 8 이고..
코드 입력 while True: try: A, B = map(int, input().split()) print(A + B) except: break 자꾸 막혀서 결국 또 구글링.. 까먹고 있었던 것을 떠올릴 수 있었다 try 와 except 많이 다루질 않아서 익숙하지 않았는데, 복습을 하면서 보니 반가웠다 try에는 반복문의 내용을 계속 시도하고, 만약 오류가 발생할 경우 (예를 들어 a,b를 입력해야 하는데 a만 입력한다던가....) 해당 알고리즘을 멈추게 하는 로직이 구성된다. 출처 : 백준 Online Judge https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acm..