전체 글 30

[DB] 프로젝트의 데이터베이스 스키마를 그려보자 - 순서와 도구

ASKu 입실렌티 사이드 프로젝트 때 DB 스키마를 짜는 역할을 맡았다. 데이터베이스 수업을 들으면서 과제로 DB 스키마를 짜본 경험은 있지만... 문제는 그땐 그냥 손으로 그려서 했다는 것이다! 그래서 나 혼자 스키마를 짜도 다른 팀원들에게 명확하게 설명하기 힘든 상황이라 스키마를 깔끔하게 보여지도록 하기 위해 여러 방법을 찾았다. 우선은 내가 프로젝트에서 스키마를 짠 순서를 소개하고, 그 과정에 사용한 몇가지 추천 툴들을 추천하려고 한다.1. DB 스키마 짜는 순서0) ★기획상의 기능정의와 요구사항을 명확히 이해하기★정말 제일 중요하다!!! 현재 프로젝트에서 기획하고 있는 제품이 뭔지, 무엇을 해야 하는지 명확히 이해해야 하고 부정확하거나 잘 이해되지 않는 부분이 있다면 기획 쪽에 반드시 다시 한 번..

웹/BackEnd 2023.07.03

[COSE403] 1주차 연습 풀이와 설명 모음

천문동아리에서 백준 소모임이 생겼다... 정말 관측 빼고 다하는 동아리 같다. 백준 플레 친구가 집어주는 문제를 매주 풀기로 정했는데, 풀이와 그 당시의 생각을 기록해두고 싶어 이렇게 매주 문제를 풀고 블로그 글도 작성하고자 한다. 사용 언어는 Python이고, 가끔 nodejs 기반의 javascript도 사용할 예정이다. 11942. [B5] 고려대는 사랑입니다 console.log("고려대학교"); 정말 간단한 출력 문제. 그냥 언어에 맞게 출력하면 된다. 파이썬으로는 옛날에 풀었어서 이 문제만 js로 풀어봤다. 프로젝트 하면서 js 숙련도가 아직 많이 낮은 거 같아 백준을 js로 풀려고 계획 중인데, 아직 본격적으로 시도해보진 않았다ㅎㅎ.. 11718. [B5] 그대로 출력하기 # 11718 im..

[프로그래머스] 숫자 문자열과 영단어

1. 링크 https://school.programmers.co.kr/learn/courses/30/lessons/81301 2. 문제 설명 (1) 문제 설명 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각..

[백준 10250] ACM 호텔

1. 링크 https://www.acmicpc.net/problem/10250 2. 문제 설명 (1) 문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른..

[프로그래머스] 신규 아이디 추천

1. 링크 https://school.programmers.co.kr/learn/courses/30/lessons/72410 2. 문제 설명 (1) 문제 설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 ..

[백준 2164] 카드2

1. 링크 https://www.acmicpc.net/problem/2164 2. 문제 설명 (1) 문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기면 24가 된다. 마지막으로 2를 버..

[프로그래머스] 2016년

1. 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12901 2. 문제 설명 (1) 문제 설명 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. (2) 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) 3. 코드 def so..

[백준 2108] 통계학

1. 링크 https://www.acmicpc.net/problem/2108 2. 문제 설명 (1) 문제 수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자. 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오. (2) 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다..

[백준 1253] 좋다

1. 링크 https://www.acmicpc.net/problem/1253 2. 문제 설명 (1) 문제 N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 “좋다(GOOD)”고 한다. N개의 수가 주어지면 그 중에서 좋은 수의 개수는 몇 개인지 출력하라. 수의 위치가 다르면 값이 같아도 다른 수이다. (2) 입력 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) (3) 출력 좋은 수의 개수를 첫 번째 줄에 출력한다. 3. 코드 #1253 import sys #입력 받기 N = int(sys.stdin.readline().strip()) A = list(m..

[백준 2018] 수들의 합

1. 링크 https://www.acmicpc.net/problem/2018 2. 문제 설명 (1) 문제 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한다. 이때, 사용하는 자연수는 N이하여야 한다. 예를 들어, 15를 나타내는 방법은 15, 7+8, 4+5+6, 1+2+3+4+5의 4가지가 있다. 반면에 10을 나타내는 방법은 10, 1+2+3+4의 2가지가 있다. N을 입력받아 가지수를 출력하는 프로그램을 작성하시오. (2) 입력 첫 줄에 정수 N이 주어진다. (3) 출력 입력된 자연수 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수..