본문 바로가기
반응형

코테44

[TIL] : 85 일일 배움을 위한 Today I Learned ! 파이썬 알고리즘 문제풀이 오랜만에 파이썬 문제를 풀었다. 꾸준히 해야지 하는데 문제가 어려워서 할 맛이 안 난다고 해야하나.. 앞으로 한 문제씩이라도 해야겠다. 2022.01.19 - [Algorithm/파이썬 알고리즘 문제풀이 (코딩테스트대비)] - [파이썬 알고리즘 문제풀이] : 봉우리 코드 리뷰 세미나 코드 리뷰 세미나를 듣고 후기를 남겼다. 2022.01.19 - [발전소/강연 및 세미나] - [강연 및 세미나] : 한번 듣고 평생 써먹는 코드 리뷰 노하우 후기 Spring Boot HTTP 파라미터를 조회하는 방법에 대해 공부했다. 2022.01.19 - [Framework/Spring Boot] - [Spring Boot] : Get 쿼리 파라.. 2022. 1. 19.
[파이썬 알고리즘 문제풀이] : 사과나무 문제 n*n 격자판으로 된 과수원에서 다이아몬드 모양의 격자판만 수확하고 수확한 것의 총 수를 구한다. 주의 풀이 n = int(input()) a = [list(map(int, input().split())) for _ in range(n)] res = 0 s = e = n//2 for i in range(n): # j for문은 e까지 돈다. for j in range(s, e+1): res += a[i][j] if i < n//2: s -= 1 e += 1 else: s += 1 e -= 1 print(res) 2022. 1. 2.
[TIL] : 66 일일 배움을 위한 Today I Learned ! Spring Boot 객체 지향 설계 원칙 중 DIP(의존 관계 역전 법칙)에 대해 공부하고 깃에 올렸다. 조금 더 공부해서 스터디 발표 자료로 활용할 예정이다. 알고리즘 오늘도 역시 코딩 테스트를 위해 알고리즘 문제를 풀었다. 그 외 인프런 30% 할인이 오늘까지인 관계로 빨리 들을 강의가 있나 탐색을 해 봤다. 김영한님 강의를 더 구매해서 듣고 싶었지만 지금 듣고 있는 것도 아직 완강을 못 했기 때문에 잠시 보류하고.. 우선 AWS 관련 짧은 강의를 구매했다. 간단하게 배포하는 방법을 설명하는 강의라 저렴하고 짧은 수강 시간을 가지고 있기 때문에 부담 없이 들을 수 있을 것 같다. 2021. 12. 31.
[파이썬 알고리즘 문제풀이] : 격자판 최대합 문제 n * n의 격자판이 주어지면 각 행, 열, 두 대각선의 합 중 가장 큰 합을 출력한다. 주의 풀이 n = int(input()) a = [list(map(int, input().split())) for _ in range(n)] # 전역 변수 largest = -2147000000 for i in range(n): sum1 = sum2 = 0 #sum1은 행, sum2는 열 for j in range(n): sum1 += a[i][j] sum2 += a[j][i] # 가장 큰 경우를 구해야 하니 largest에 큰 값을 계속 갱신해 준다. if sum1 > largest: largest = sum1 if sum2 > largest: largest = sum2 # 대각선 값 구하기 sum1 = su.. 2021. 12. 31.
[파이썬 알고리즘 문제풀이] : 수들의 합 문제 N개 수로 된 수열이 있을 때 i번째 수부터 j번째 수 까지의 합이 주어지는 값과 같은 경우의 수를 구하시오. 주의 풀이 # 입력 받는 변수 n, m = map(int, input().split()) a = list(map(int, input().split())) # 알고리즘 풀이에 사용 될 전역 변수 lt = 0 rt = 1 tot = a[0] cnt = 0 # 알고리즘 로직 while True: # while문에 True값을 줘서 무한 반복문을 완성시킨다. if tot 2021. 12. 31.
[파이썬 알고리즘 문제풀이] : 두 리스트 합치기 문제 오름차순으로 정렬이 된 리스트가 주어지고 두 리스트를 그대로 합쳐 오름차순이 정렬된 형태로 출력한다. 주의 풀이 n = int(input()) a = list(map(int, input().split())) m = int(input()) b = list(map(int, input().split())) p1 = p2 = 0 c = [] while p1 < n and p2 < m: # 오름 차순으로 정렬하기 위해 하나씩 값을 비교한다. if a[p1] 2021. 12. 30.
[파이썬 알고리즘 문제풀이] : 카드 역배치(정올 기출) 문제 1부터 20까지 오름차순 정렬 된 카드가 주어지고 주어지는 두 수의 범위 내 카드들을 역으로 배치해준다. 주의 풀이 #a, b = map(int, input().split()) # 스왑하는 방법이다. # a, b = b, a # print(a, b) a = list(range(21)) #_를 통해 변수 없이 반복을 하게 된다. => 시간이 좀 더 단축하게 된다. for _ in range(10): s, e = map(int, input().split()) # +1을 더해줘서 반복하는 수를 맞춰준다. for i in range((e-s+1)//2): # 스왑을 해준다. a[s+i], a[e-i] = a[e-i], a[s+i] a.pop(0) for x in a: print(x, end=' ') 2021. 12. 30.
[파이썬 알고리즘 문제풀이] : 숫자만 추출 문제 문자, 숫자가 섞인 문자열을 입력받고 숫자만 추출해 자연수로 만들어 약수를 출력해 준다. 주의 풀이 s = input() # 누적을 위한 전역변수 res = 0 for x in s: # isdecimal은 0부터 9까지만 찾아준다. # isdigit은 제곱까지 다 찾아준다. if x.isdecimal(): res = res*10+int(x) print(res) cnt = 0 for i in range(1, res+1): if res%i==0: cnt += 1 print(cnt) 2021. 12. 29.
[파이썬 알고리즘 문제풀이] : 회문 문자열 검사 문제 문자열을 입력 받고, 회문 문자열 검사를 한다. 단, 대소문자 구분을 하지 않는다. 주의 파이썬 특징을 살리는 코드로 간단하게 작성할 수도 있으나 가능하면 풀어서 쓰는 게 좋다. 풀이 n = int(input()) for i in range(n): s = input() # s를 대문자화 시켜준다. s = s.upper() ############ 풀어서 쓴 코드 이 코드로 이해하는 게 좋다. #################### #s열의 길이를 구해준다. size = len(s) # 처음과 끝, 짝지어 비교하면 되므로 나누기 2를 해준 수 만큼 비교해 준다. for j in range(size//2): # 맨 뒤에서 리스트에 접근할 때 -1이 먼저인데 j는 0이라 -1-j를 해준다. if s[j] !.. 2021. 12. 28.
[파이썬 알고리즘 문제풀이] : 점수계산 문제 문제 수가 주어지고, 문제를 맞추면 처음엔 1 그 다음은 2 그 다음은 3..이렇게 1씩 증가하며 점수가 누적된다. 중간에 문제가 틀리면 다시 1점이 쌓이게 된다. 주의 풀이 n = int(input()) a = list(map(int, input().split())) # 점수를 합해야 한다. sum = 0 # 가중치 cnt = 0 # 리스트 a에서 첫 번째 인덱스 값부터 끝까지 하나씩 뺴준다. for x in a: # x가 1이랑 같다면 == 점수가 1점일 때 if x == 1: # 연속으로 정답을 맞추면 1씩 증가된 값을 더해야 하기 때문에 cnt에 가중치를 준다. cnt += 1 # 가중치 값을 sum(합계)에 담아준다. sum += cnt # x가 1이 아닐 때 == 정답이 아닐 때 else.. 2021. 12. 28.
[TIL] : 58 일일 배움을 위한 Today I Learned ! 소경관 프로젝트 진행 중 교수님의 요구 사항이 들어와서 데이터 베이스 관련해서 변경하고 있다. 일단 NoSQL 기반으로 해야 하기 때문에 Ubuntu에 MongoDB를 설치하고 어떻게 바꿔줘야 할지 생각을 하고 있다. 2021.12.23 - [Project/소경관] - [소경관] : 프로젝트 진행 중 요구 사항 발생 ! 2021.12.23 - [Project/소경관] - [소경관] : Ubuntu 18.04.05에 MongoDB 설치 Python 커뮤니티에 리뷰 이벤트로 받은 머신러닝 관련 책 내용이 너무 좋아서 오늘 출판사에 이메일을 보내 저작권 관련 블로그 포스팅 문의를 넣어 답을 받았다. 앞으로 파이썬 데이터 분석 머신 러닝에 대한 공부도 조금씩 해.. 2021. 12. 23.
[파이썬 알고리즘 문제풀이] : 주사위 게임 문제 1~6까지 있는 주사위 3개를 던져서 규칙에 맞게 상금을 받고, 가장 큰 수를 출력하는 프로그램을 작성하시오. // 저작권 관련 때문에 문제를 간략하게 설명해야 하기 때문에 완전한 문제를 적을 수 없습니다. 주의 풀이 import sys n = int(input()) res = 0 for i in range(n): tmp = input().split() # tmp를 오름차순 정렬해 준다. tmp.sort() # tmp가 지금 문자열로 받아졌기 떄문에 int 형으로 변환해서 받아준다. a, b, c = map(int, tmp) if a == b and b == c: # a, b, c 모두 같은 값이라 아무 값이랑 1000이랑 곱해준다. money = 10000 + (a * 1000) elif a ==.. 2021. 12. 23.
[파이썬 알고리즘 문제풀이] : 뒤집은 소수 문제 숫자를 뒤집고 뒤집은 숫자가 소수이면 출력하시오. 주의 풀이 import sys def reverse(x): # 초기화 하나 한다. res=0 # while 문으로 x가 0보다 클 때 항상 반복문을 돌려준다. while x>0: # x의 1의 자리 숫자가 t가 된다. t=x%10 res=res*10+t # x는 10으로 나눈 몫으로 바꿔진다. x=x//10 # res를 리턴한다. return res def isPrime(x): # x의 값이 1일 수 있다. if x==1: # False 시켜줘야 한다. return False # 소수를 구하려면 값의 반 정도까지만 구하면 된다. # 그 뒤쪽은 어차피 다 걸러진다. # 2로 나눈 몫의 +1을 해줘 절반까지 돌게 한다. for i in range(2, .. 2021. 12. 22.
[TIL] : 56 일일 배움을 위한 Today I Learned ! 알고리즘 자바로 어려웠던 소수 구하기를 파이썬으로 간단하게 해냈다. 에라토스테네스의 체를 사용하여 소수 구하기를 할 수 있다. 2021.12.21 - [Algorithm/파이썬 알고리즘 문제풀이 (코딩테스트대비)] - [파이썬 알고리즘 문제풀이] : 소수 구하기 (에라토스테네스의 체) 회고 드디어 21년 진행한 마지막 프로젝트 회고를 마쳤다. 정리하면서 쓰지 않고 바로 끊임없이 쓰려고 했다. 딱 그 과거의 장면을 떠올릴 때 느끼는 그 느낌을 경험에 싣고 싶었다. 오늘 커뮤니티 두 곳에 회고를 올렸는데 500분 넘게 봐주셨다. 그 중 누군가에게 도움이 된 회고가 되었다면 만족한다. 2021.12.21 - [회고] - [회고] : 파스타 공모전 회고 커뮤니티.. 2021. 12. 21.
[파이썬 알고리즘 문제풀이] : 소수 구하기 (에라토스테네스의 체) 문제 소수의 개수를 출력하는 프로그램을 작성하시오. 주의 풀이 import sys n=int(input()) ch=[0]*(n+1) cnt=0 for i in range(2, n+1): if ch[i]==0: cnt+=1 for j in range(i, n+1, i): ch[j]=1 print(cnt) 2021. 12. 21.
[TIL] : 55 일일 배움을 위한 Today I Learned ! 소경관 프로젝트 진도 좀 나가봤다. 비밀번호를 암호화 하기 위해 단방향 해시 알고리즘인 SHA-256 암호화 알고리즘과 그 외 이메일 주소 같은 부분을 암호화 하기 위해 양방향 암,복호화 알고리즘은 AES128-CBC 암,복호화 알고리즘을 구현하고 테스트해서 통과시켰다. 2021.12.20 - [Project/소경관] - [소경관] : SHA-256 암호화 알고리즘, AES128-CBC암,복호화 알고리즘 적용 오류 노트 소경관 프로젝트를 진행하면서 테스트 코드를 작성하고 있었는데 Run 실행이 안 되는 오류가 터졌다. 구글링하여 고치고 방법을 기록했다. ' 2021.12.20 - [컴퓨터 공부/오류 노트] - [오류 노트] : 오류: 기본 클래스 poly.. 2021. 12. 20.
[파이썬 알고리즘 문제풀이] : 자릿수의 합 문제 N개 자연수를 입력 받고 각 자릿수를 더해서 제일 큰 값의 자연수를 출력하시오 주의 풀이 import sys n = int(input()) a = list(map(int, input().split())) def digit_sum(x): sum=0 # str() 함수는 받은 값을 다 쪼개서 문자열로 받는다. 123을 넣으면 1 2 3을 따로 따로 값을 문자열로 가져오는 것이다. for i in str(x): sum+=int(i) return sum max = -2147000000 # for x in a: 형식으로 작성하면 a리스트에 일일이 접근해 값을 가져온다. 리스트에 1 12 123이 있다면 그대로 1 12 123 따로따로 값을 가져오는 것이다. for x in a: tot=digit_sum(x).. 2021. 12. 20.
[백준] : 2742 Python, 파이썬 풀이 문제 주의 range() 함수의 사용법을 검색해 보고 풀어보면 좋습니다. 풀이 n = int(input()) for i in range(n, 0, -1): print(i) 우선 정답은 위 코드입니다. range함수를 통해 n = 초기값, 0 = 종료값, -1 = 증감값 이렇게 넣을 수 있습니다. 처음에는 조금 다르게 풀었는데 출력은 같은데 정답으로 인정이 안 되어서 다시 풀어봤습니다. n = int(input()) for i in range(5): n -= 1 print(n+1) 이게 처음에 풀어본 코드인데 사실 정답 코드가 깔끔하긴 합니다. 이번 코드를 풀면서 하나 더 배웠네요. 2021. 12. 13.
[TIL] : 44 일일 배움을 위한 Today I Learned ! 알고리즘 파이썬으로 백준 알고리즘을 풀었습니다. 2021.12.09 - [Algorithm/백준] - [백준] : 10950번 Python,파이썬 풀이 2021.12.09 - [Algorithm/백준] - [백준] : 8393 Python,파이썬 풀이 Hadoop 자주 사용하는 명령어와 간단한 정의에 대해서 자문 자답으로 12문제 정도 진행했습니다. 2021.12.09 - [Data Base/Hadoop] - [Hadoop] : Hadoop 자문 자답 12제 소경관 프로젝트 진행이 어떻게 되고 있는지 기록하였습니다. 2021.12.09 - [Project/소경관] - [소경관] : 데이터 베이스 설계에 대한 고민 2021. 12. 9.
[TIL] : 43 일일 배움을 위한 Today I Learned ! 알고리즘 코딩 테스트 대비 알고리즘을 풀었습니다. 아직 파이썬이 익숙하지 않아서 기초 문제를 풀고 있지만 알고리즘 전체의 흐름과 어떻게 돌아가는지 이해하면서 풀어보고 있습니다. 2021.12.08 - [Algorithm/파이썬 알고리즘 문제풀이 (코딩테스트대비)] - [파이썬 알고리즘 문제풀이] : 최소 값 구하기 2021.12.08 - [Algorithm/파이썬 알고리즘 문제풀이 (코딩테스트대비)] - [파이썬 알고리즘 문제풀이] : k번째 큰 수 질문 노트 구글링 연습을 위해 잘 모르는 내용을 찾아보고 정리합니다. 2021.12.08 - [컴퓨터 공부/질문 노트] - [질문 노트] : Master Server와 Slave Server는 어떻게 데이터를.. 2021. 12. 8.
[파이썬 알고리즘 문제풀이] : k번째 큰 수 문제 1부터 100사이 자연수가 적힌 n카드 중 3장을 뽑아 각 카드에 적힌 수를 합한 값을 기록한다. 기록한 값 중 K번째로 큰 수를 출력하는 프로그램을 작성하시오. 1 1 1 2 2 3 4 5 중 2번째 큰 수는 2 입니다. ( 중복은 제거 ) 주의 set()은 중복을 제거할 때 사용합니다. set()은 sort가 없기 때문에 정렬을 하려면 list에 담아 정렬을 해야 합니다. set() 값을 list에 담아 sort로 정렬을 해주면 오름차순이 디폴트 값이고 reverse=Ture를 통해 내림차순 정렬을 할 수 있습니다. 풀이 n, k=map(int, input().split()) a=list(map(int, input().split())) #set은 중복 제거에 사용합니다. res=set() #첫 .. 2021. 12. 8.
반응형