반응형

divmod함수는 몫과 나머지를 한 번에 구하고 싶을 때 사용하는 함수이다. 

 

a, b = divmod(num)

 

이런 식으로 사용하면 된다. 

 

프로그래머스 124나라의 숫자를 풀다가 처음보는 함수가 있길래 찾아보았다. 

이 문제를  풀 때 처음에는 막연히 10진수를 2진수로 변환하는 것처럼 if문을 사용하여서 만들었는데 너무 복잡하고 시간도 오래 걸렸다. 그러다 문자열로 푼 방법을 발견했다. 

아마도 answer = ' '이렇게 answer을 문자열 형식으로 준 것이 힌트였던 것 같다. 

반응형
반응형

안녕하세요. 오랜만이에요!

 

요즘..백준 알고리즘 푸느라 정신이 없네요 ㅎㅎㅎ

해놓은 건 많은데 여기에 올리는 걸 깜빡깜빡해요...

오늘 문제는 이것입니다!

 

https://www.acmicpc.net/problem/1302

 

1302번: 베스트셀러

첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고

www.acmicpc.net

제가 최근에 deque에 대해 배워서 활용해봤어요!

 

from collections import deque

n = int(input())

count = dict()
for i in range(n):
    name = input()
    count[name] = count.get(name, 0) + 1

value = list(count.values())
king = value[0]
title = deque()
c = 0
for x, y in count.items():
    if y == king:
        title.append(x)
        c += 1

    if y > king:
        for _ in range(c):
            title.pop()
        title.append(x)
        king = y

print(min(title))

여기서 c변수는 이전에 있었던 tilte 큐에 있는 원소들을 전부 빼주는 역할을 합니다!

deque를 처음으로 이용해봐서 그런지 뿌듯하네요!!

반응형

'coding > python' 카테고리의 다른 글

[파이썬] divmod함수  (0) 2020.11.27
[파이썬] 백준 알고리즘 1157번  (0) 2020.09.19
[파이썬] 백준 알고리즘 2577번  (0) 2020.09.01
[파이썬] 인코딩 & 디코딩  (0) 2020.07.24
[파이썬] 정규식 (regular expression)  (0) 2020.07.09
반응형

word = input()
word = word.lower()
alpha = list(word)

a = len(alpha)
count = dict()
for i in range(a):
    count[alpha[i]] = count.get(alpha[i],0) + 1

king_value = None
king_key =None
for key, value in count.items():
    if king_value is None or value > king_value:
        king_value = value
        king_key = key
    else:
        if king_value == value:
            king_key = "?"

print(king_key.upper())

#문제가 되었던 부분
# 1. word를 모두 소문자로 만들었어야 한다.
# 2. count[alpha[i]]로 해서 list의 내용부분이 키가 되도록 했어야 한다
# 3. 프린트 할 때 king_key를 대문자로 만들어서 프린트 했어야함

오늘 만든 코드에요! 방학에 배운 get함수를 사용하니까 문제가 간단하게 해결 되더라고요!

파이썬 오랜만에 해보는 데 역시...편리하군요^^

반응형

'coding > python' 카테고리의 다른 글

[파이썬] divmod함수  (0) 2020.11.27
[파이썬] 백준 알고리즘 1302번  (0) 2020.09.30
[파이썬] 백준 알고리즘 2577번  (0) 2020.09.01
[파이썬] 인코딩 & 디코딩  (0) 2020.07.24
[파이썬] 정규식 (regular expression)  (0) 2020.07.09
반응형

안녕하세요! 제가 저번에 백준 알고리즘 열심히 하고 있다고 했었죠!

이번에 푼 문제를 같이 공유하고 싶어서 왔어요!

 

#include <stdio.h>
  
int main()
{
        //숫자 3개 받기
        int a, b, c;
        scanf("%d", &a);
        scanf("%d", &b);
        scanf("%d", &c);

        int num = a*b*c;

        //num 따로 저장해두기
        int restore_num = num;

        //리스트 0으로 정리
        int arr[10];
        int i;
        for (i = 0; i < 10; i++)
        {
                arr[i] = 0;
        }

        //num의 자릿수 구하기
        int rest = 1;
        int count = 0;
        while (rest >= 1)
        {
                rest = num/10;
                if (rest >= 1)
                        count = count + 1;
                num = num / 10;
        }

	//각 자리의 숫자를 구해서 리스트에 정리
        num = restore_num;
        for (i = 0; i <= count; i++)
        {
                int r;
                r = num % 10;
                arr[r] = arr[r] + 1;
                num = num / 10;
        }
    	
        //프린트
        for (i = 0; i < 10; i++)
        {
                printf("%d\n", arr[i]);
        }

        return 0;
}

이 문제를 풀 때 num이 계속 바뀌어서 따로 저장해두어야 한다는 점을 찾지 못해서 좀 햇갈렸었어요.

참고 해주세요~!

 

반응형
반응형

**ord()**

- 해당되는 것이 아스키 코드에서 몇 번인지 알려준다

 ex) print(ord('a'))

 

 

**아스키 코드**

- 미국표준코드표기. 알파벳으로 표현 가능한 언어를 표현할 수 있는 코드이다. 

- 다른 나라의 언어는 표기할 수 없다는 것이 단점이다.

 

 

**유니 코드**

- 유니 코드는 표현될 수 있는 공간이 넓어서 많은 나라의 언어를 표기할 수 있다.

- 그러나 용량이 너무 크다. 

 

 

**UTF - 8**

- 1~4 byte 까지 필요에 따라 크기를 조정할 수 있다. 

- 아스키 코드와 호환이 가능하다. 

- 네트워크에서 보낼 때, 용량을 줄일 수 있어 많이 사용된다. 

 

 

오랜만에 공부해요!!ㅜㅜ

이제 다시 열심히 달려야죠!! 요근래 너무 게을러 진 것 같아서 걱정이에요...

다시 파이팅!! 

반응형
반응형

8 Edwith에 올라와있는 커리큘럼 중 3번째 수업인 웹 스크래핑을 오늘부터 시작했어요!

 

첫번째로 배운 것은 정규식 (regular expression) 이에요!

정규식은 오래 전에 만들어진 언어이고 파이썬과 자주 함께 쓰인다고 해요.

꼭 정규식을 알아야 하는 것은 아니지만 편리하고 많은 작업을 할 수 있기 때문에 자주 사용된다고 해요.

그리고...정규식을 사용하면 왠지 모르게 멋있어 보이는 것 같아요..ㅋㅋㅋㅋ

정규식을 사용할 때는 import re를 해서 사용해야 해요.

 

**정규식 표현**

1. ^ : 줄의 시작

2. . : 와일드 카드 

   ex) X. 

3. * : (바로 앞선 문자에 적용) 0 또는 그 이상 반복될 수 있다. 

4. \s : 공백 문자를 매칭

5. \S : 공백이 아닌 문자를 매칭

6. *? : *와 기능은 같지만 조건에 부합하는 것 중 가장 단 시간에 찾는 것

7. + : (바로 앞선 문자에 적용) 1번 이상 반복될 수 있다. 

8. +? : +와 기능은 같지만 조건에 부합하는 것 중 가장 단 시간에 찾는 것

 

<< ? 는 왜 쓸까>>

 ? 가 없으면 더 긴 것을 출력한다. 

 예를 들어서 '^From :' 을 입력하면 

 From : 이 아니라 From : Using the : 가 출력될 수 있다. 

이런 것을 방지하기 위해서 ? 를 사용한다. 

 

9. [ ] : 원하는 것을 모아서 [ ] 안에 쓴다. 

   ex) [^ ] 은 공백이 없음을 의미한다. 

10. ( ) : 원하는 것을 묶어서 추출한다. 

 

 

**re의 내장함수**

1. re.search('조건', 찾을 곳)

 

2. re.findall('조건', 찾을 곳)

   - 조건에 만족하는 것들을 추출해서 리스트로 만든다. 

반응형
반응형

대신증권 계좌 승인이 나기 전에 파이썬 자료구조를 공부하려고 오랜만에 Edwith에 들어갔어요!

오늘은 파일을 열어서 안에 어떤 단어가 가장 많이 들어가있는지 확인해보는 코드를 만들었어요.

a = input('읽을 문서의 이름을 입력하세요:')

#a = a+'.txt'

handle = open(a, 'r', encoding='UTF8')

count = dict()

for line in handle:
    line = line.rstrip()
    words = line.split()
    for word in words:
        count[word] = count.get(word, 0) + 1

king_key = None
king_value = None

for key, value in count.items():
    if king_value is None or value > king_value:
        king_value = value
        king_key = key

print(king_key, king_value)

요 코드가 제가 만든 코드입니다. 

저는 요즘 NCT 라는 아이돌을 좋아해서 각 가사마다 어떤 단어가 많이 있는지 확인해보았어요.

Ridin'이라는 노래라 저는 Ridin'이 제일 많이 나올 줄 알았는데..Reloading이 13번으로 가장 많이 나오더군요...ㅋㅋㅋㅋ

 

리스트를 만들어서 sorted 함수로 Reverse = True로 해서 가장 많이 나온 단어 Top 3 해보는 것도 재밌을 것 같아요.

 

 

 

 

이거 다 만들고 나니까 대신증권 승인 됐다고 이메일이 왔네요!

이제 다시 트레이딩 만들러 가야겠어요!

 

 

반응형
반응형

오늘 내로 증권 ID가 만들어지지 않을 것 같아서 오늘은 자료구조 공부를 했다. 

 

이전에 자료구조를 공부한 경험이 있어서 그냥 쉽게 쉽게 따라가다가 한 부분에서 막혔다. 

 

원래는 handle = open("test.txt") 하면

그냥 열어서 읽어줬는데 최근에 파이썬이 바뀌면서 

fhand = open("test.txt","r",encoding='UTF8') 라고 해야 파일이 열려서 읽을 수 있다. 

 

오늘 정말 너무 당황스러운 일들의 연속이었다...

내일도 파이팅!! 하루하루를 곱씹으며 열심히 살자!

반응형
반응형

요즘 밖으로 나갈 일이 많아서 파이썬 공부를 제대로 하지 못 했었다. 

너무 늘어지는 것 같아서 오늘은 반드시 제대로 공부하겠다고 나왔는데....

계좌를 만들고 ID를 생성하는데 시간이 많이 걸렸다. 

아무래도 처음 만들어 보는 것이고 공인인증서 같이 기본적으로 필요한 것들을 잘 갖추고 있지 않아서 시간이 더 필요했다. 

열심히 계좌를 만들고 ID를 생성하려고 했는데! 

비대면으로 개설해서 그런지 아직 승인이 나지 않아서 ID를 만들 수 없었다. 계속 없는 계좌라고 에러코드가 떴다...

이 책에서는 대신, 키움, 이베스트 세 군데의 API 사용법에 대해 설명하고 있다. 

나는 가장 처음에 나오는 대신을 선택해서 따라하고 있는데...쉽지 않다. 

아마 다른 분들도 이 책을 보고 하게 되시면 참고하면 좋을 것 같아요..

계좌가 짠! 하고 나타나지 않네요ㅜㅜ

반응형

'coding > python' 카테고리의 다른 글

[파이썬] 정규식 (regular expression)  (0) 2020.07.09
[파이썬] Edwith로 자료구조 공부하기!  (0) 2020.07.08
[파이썬] 파일 열어서 읽기  (0) 2020.07.08
[파이썬] COM 활용  (0) 2020.07.03
[python] 파이썬 문법 정리  (0) 2020.06.29
반응형

오늘은 책에서 COM이라는 것을 배웠습니다. 

이것은 마이크로소프트에서 제공해주는 것으로 우리가 크롬, 엑셀 등을 파이썬으로 다룰 수 있게 도와줍니다. 

 

일단 간단한 코드를 하나 작성해 보았습니다. 

 


import win32com.client

excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = True
wb = excel.Workbooks.Add()
ws = wb.Worksheets("Sheet1")
ws.cells(1, 1).value = "hello"
wb.SaveAs('C:\\Users\\이윤진\\1st')
excel.Quit()

 


이 코드는 엑셀 파일을 열어 (1, 1)의 자리에 hello를 적는 아주 간단한 코드입니다. 

 

이 코드를 처음 작성했을 때는 엑셀 파일의 저장 장소를 \ (백슬래시)로만 작성하여서 파일이 제대로 작동하지 않았습니다. 

파일을 어떤 장소에 저장할 때는 반드시 저장장소를 \\로 작성해야합니다. 

반응형

+ Recent posts