목록전체 글 (275)
컴굥일지
문제 https://www.acmicpc.net/problem/2605 문제 내용 학생들이 번호를 뽑는다. 이때 모두 자신의 순서 미만의 번호를 뽑는다. 세 번째 학생이 0을 뽑으면 그냥 자신의 자리에 있고, 1을 뽑는다면 한 칸 앞으로 가며, 2를 뽑으면 두 칸 앞으로 간다. 자신이 뽑은 순서만큼 앞으로 거슬러가는 것이다. 문제 풀이 나는 insert를 이용하여, 자신이 뽑은 수만큼의 위치에 저장하도록 했다. 그리고 역순으로 출력하면, 문제에서 원하는 대로 출력이 가능하다. 코드 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); //입력 int n..
문제 https://www.acmicpc.net/problem/4949 문제 내용 문장을 입력받아서 문장 안에 있는 괄호를 순서대로 체크하여 균형 잡혀있는지 아닌지를 판단하는 문제이다. . 하나만 들어왔을 때, 프로그램이 종료되게 해야 한다. 문제 풀이 [백준 9012 괄호] 문제에서 조금 발전된 형태라고 생각하면 된다. 다만, 문장 안에서 ( ) [ ] 이 네 가지 괄호만 체크해야 하고, 입력되는 문자열에 공백이 포함된다는 것에 유의하자. 입력 문자열에 공백이 포함되었기 때문에 getline을 이용해서 한 줄을 입력받으면 된다. 또한, checkVPS함수를 약간 수정해주면 된다. ( [ 이 두 가지 종류의 괄호는 스택에 그대로 추가해주면 된다. 하지만, ) ] 이 닫는 괄호들은 스택의 top에 자신과 ..
문제 https://www.acmicpc.net/problem/2930 문제 내용 상근이가 가위바위보를 한다. 친구들과의 가위바위보를 했을 때의 점수를 출력하고, 친구들의 수를 미리 알고 있었을 때 상근이가 가장 많이 획득할 수 있는 점수도 출력하면 된다. 문제 풀이 check_win()이라는 함수를 만들어 문제를 해결했다. 상근이의 수와 친구의 수를 인자로 넘겨서 상근이가 몇 점을 획득할지 반환하는 함수이다. 이 함수를 main함수의 반복문 안에서 사용하면 된다. arr배열은 상근이가 친구들의 수를 모두 알고 있을 때, 가위/보/바위를 냈을 때 어떤 점수를 받는지를 저장한 것이다. 이중에 가장 큰 값을 저장하면 max_score를 얻을 수 있다. 그냥 score는 상근이와 친구들의 수를 그냥 비교하면 ..
[Model, DB 연동 - makemigrations, migrate] model : 장고에서 model은 DB를 장고 내부에서 사용하기 편하도록 연동시켜주는 것 개발하는 입장에서 DB의 내용을 자세히 알지 않아도 되게 해준다. Model 만들기 models.py에 내용 입력 #accountapp/models.py from django.db import models # Create your models here. class HelloWorld(models.Model): #Model을 상속받아서 구현하고자 한다. text = models.CharField(max_length=255, null=False) #null이 true이면 내용이 없어도 된다는 것 터미널에 python manage.py makemi..
[style, 구글 폰트를 통해 Header, Footer 꾸미기] 먼저 head.html 파일에 링크를 추가한다. 그리고 폰트를 적용할 header,footer 안의 특정 태그에 style 속성을 추가한다. 처럼 적으면 된다. [Static 설정 및 CSS 파일 분리] style 속성은 보통 CSS 파일로 분리하여 관리한다. (간단한건 그냥 놔두기도 한다.) CSS 파일을 분리하기 전에 Static에 관한 설정을 해주어야 한다. Static 정적이라는 뜻으로, CSS나 JS 등 자주 변하지 않는 파일들을 보통 static이라고 한다. 프로젝트나 앱 별로 따로 관리한다. settings.py에서 STATIC_URL 아래에 STATIC_ROOT = os.path.join(BASE_DIR, 'stat..
[장고 Template의 extends, include 구문과 render 함수] 장고 Template에서 자주 쓰이는 구문 ⇒ extends, include extends 미리 만들어둔 HTML 템플릿이 있는데, 이것을 가져와서 나머지 내용들을 채워나가는 방식 include 만들고 있는 html 파일에 조그만 조각들을 가져와서 템플릿에 박아 넣는 방식 ⇒ extends로 바탕을 만들고, include로 내용을 채워나간다. 실습 templates폴더를 새로 생성하고 그 안에 base.html을 만든다. accountapp/views.py파일에서 templates/base.html을 사용하기 위해 settings.py를 수정한다. # pragmatic/settings.py TEMPLATES = [ { &#..
[첫 앱 시작, 그리고 기본적인 view 만들기] # terminal에서 app 생성하기 python manage.py startapp [원하는 app 이름] 이 명령어를 치면, accountap이라는 폴더가 따로 생긴다. 이렇게 생성된 프로젝트를 main(pragmatic)에서 쓰기 위해서는, main 폴더의 settings.py 파일을 수정해주어야 한다. 아래와 같이 settings.py에 위에서 생성한 app 이름을 추가해주면, main에서 우리가 이 app을 추가했고, 사용할 것이라는 것을 알게 된다. INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contr..
문제 https://www.acmicpc.net/problem/1181 문제 내용 단어를 입력받아서 조건에 따라 정렬하여 출력하면 된다. 1. 길이가 짧은 것부터 2. 길이가 같으면 사전 순으로 ** 단, 같은 단어는 1번만 출력한다 (중복 제거하기)** 문제 풀이 조건 1, 2는 그냥 vector로 입력받아서 정렬 기준을 새로 정해서 sort()하면 되었었다. 다만, 추가 조건에 중복을 제거하라고 했기 때문에 set을 사용해서 문제를 풀었다. set에서 정렬의 기준을 바꾸려면 구조체를 선언하여 비교를 해야 한다. 그리고 vector처럼 정렬을 나중에 sort()를 써서 하는 것이 아니라, 애초에 set을 선언할 때 두 번째 인자로 미리 만든 구조체를 넣어 주어야 한다. 코드 #include #inclu..
문제 https://www.acmicpc.net/problem/2164 문제 내용 1~N까지의 카드가 있다. 1번이 제일 위에 있고, N이 제일 아래에 있다. 카드가 한 장 남을 때까지 두 가지 행위를 번갈아가며 진행한다. 1. 제일 위에 있는 카드를 버린다. 2. 제일 위에 있는 카드를 제일 밑으로 옮긴다. 문제 풀이 queue를 사용하여 문제를 풀면 된다. queue에 1~N까지 차례로 추가하고 위에서 설명한 행위를 진행하면 된다. 코드 #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); //입력 int n; cin >> n; queue qq; //문제 해결 fo..
문제 https://www.acmicpc.net/problem/10828 문제 내용 Stack을 사용할 때 쓰는 함수들을 쓰면 된다. Stack STL을 사용할 줄 안다면 쉽게 풀 수 있다. 문제 풀이 5가지 명령 중에 명령 그대로 함수를 쓰면 안 되는 것이 2가지 있다. 바로 pop()과 top()이다. 이 두 함수는 사용하기 전에 stack이 비어있는지 반드시 확인해야 한다. 코드 #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); //입력 int n,tmp; cin >> n; stack ss; string str; //문제 해결 for (int i = 0; i ..