목록분류 전체보기 (191)
정화 코딩
현재 이화마켓 웹어플리케이션을 개발하는 과정 중에 있는데, 그 중 로그인/회원가입 화면은 어느 서비스에서든 활용할 수 있는 필수적인 화면이라고 생각한다. 따라서 웹어플리케이션 개발을 하고자 하는 다른 사람들에게 도움이 되었으면 좋겠다고 생각하여 우리가 이 화면을 어떻게 구현하였는지에 대해 적어보고자 한다. 회원가입 화면 💡 기능 - 회원가입 버튼이 클릭되면 사용자가 입력한 아이디, 비밀번호, 닉네임을 받아 백엔드로 넘긴다. - 아이디가 중복되지 않는지 체크한다. 중복된 아이디라면 이를 알려주는 메세지 창을 보여주고 회원가입 화면으로 이동한다. 중복되지 않은 아이디라면 정상적으로 데이터베이스에 사용자 정보를 추가하고 로그인 화면으로 이동한다. (비밀번호는 암호화하여 저장한다.) 💡 구현 - app.py 일..
07-1. 소수 구하기 037. 소수 구하기 (백준 1929번) https://www.acmicpc.net/problem/1929 from sys import stdin import math m, n = map(int, stdin.readline().split()) num = [0] * (n+1) for i in range(2, n+1): num[i] = i for i in range(2, int(math.sqrt(n))+1): if num[i] != 0: for j in range(i+i, n+1, i): num[j] = 0 for i in range(m, n+1): if num[i] != 0: print(num[i]) (정답) from sys import stdin import math m, n = ..
06-1 그리디 알고리즘 032. 동전 0 (백준 11047번) https://www.acmicpc.net/problem/11047 from sys import stdin n, k = map(int, stdin.readline().split()) coin = [int(stdin.readline()) for _ in range(n)] ans = 0 for i in range(n-1, -1, -1): ans += k // coin[i] k = k % coin[i] print(ans) 그리디 알고리즘의 문제들의 특징은 이 문제가 그리디 알고리즘을 이용해서 풀어야 한다는 것을 아는 상태에서는 매우 쉽지만, 그리디라는 아이디어 떠올리는 것 자체가 매우 어렵다는 것이다. 어려운 문제일수록 그렇다고 한다. 그래서 그..
A. CD (백준 4158번) https://www.acmicpc.net/problem/4158 #python from sys import stdin from bisect import bisect_left, bisect_right while(True): n, m = map(int, stdin.readline().split()) sg, sy = [], [] cnt = 0 if (n==0 and m==0): break for _ in range(n): sg.append(int(stdin.readline())) for _ in range(m): sy.append(int(stdin.readline())) for x in sg: if(bisect_right(sy, x) - bisect_left(sy, x) > 0..
05-3. 이진 탐색 029. 수 찾기 (백준 1920번) https://www.acmicpc.net/problem/1920 from sys import stdin n = int(stdin.readline()) a = list(map(int, stdin.readline().split())) m = int(stdin.readline()) data = list(map(int, stdin.readline().split())) a.sort() for x in data: find = False start = 0 end = len(a) - 1 while start x: end = mid - 1 elif a[mid] < x: start = mid + 1 else: find = True break if(find): p..
05-1. 깊이 우선 탐색 023. 연결 요소의 개수 (백준 11724번) https://www.acmicpc.net/problem/11724 from sys import stdin import sys sys.setrecursionlimit(10000) n, m = map(int, stdin.readline().split()) data = [[] for i in range(n)] visited = [False] * n def DFS(v): visited[v] = True for i in data[v]: if not visited[i-1]: DFS(i-1) for i in range(m): a, b = map(int, stdin.readline().split()) data[a-1].append(b) dat..
04-3. 삽입 정렬 018. ATM (백준 11399번) https://www.acmicpc.net/problem/11399 from sys import stdin n = int(stdin.readline()) data = list(map(int, stdin.readline().split())) for i in range(1, n): value = data[i] for j in range(i-1, -1, -1): if(data[j] > value): data[j+1] = data[j] else: data[j+1] = value break if(j==0): data[0] = value sum = 0 for i in range(0, n): sum += (n-i) * data[i] print(sum) 저번에..
A. 외계인의 기타 연주 (백준 2841번) https://www.acmicpc.net/problem/2841 #python from sys import stdin n, p = map(int, stdin.readline().split()) stk = [[] for _ in range(6)] count = 0 for _ in range(n): line, fret = map(int, stdin.readline().split()) if len(stk[line-1]) == 0: stk[line-1].append(fret) count += 1 else: if fret > stk[line-1][-1]: stk[line-1].append(fret) count += 1 else: while fret < stk[line..