전체 381

[C언어] SWEA 1976 시각 덧셈

목표 : 시 분으로 이루어진 시각을 2개 입력받아 더한 값을 시 분으로 출력 - 12시간제 분이 시로 넘어갈 때와 시가 12를 넘어갈 때 등의 경우를 처리해주면 될 것 같다. 분을 먼저 더하고 시를 더하는데, 분은 60이상일 때와 아닐 때를 나눈다. 시는 12이상일 때와 아닐 때를 구분한다. for(test_case = 1; test_case =60){ if(t1+t2+1 > 12){ printf("%d %d\n", t1+t2+1-12, m1+m2-60); }else{ printf("%d %d\n", t1+t2+1, m1+m2-60); } }else{ if(t1+t2 > 12){ printf("%d %d\n", t1+t2-12, m1+m2); }else{ printf("%d %d\n", t1+t2, m1..

SWEA/[D2] 2022.02.26

[C언어] 백준 - 13136 Do Not Touch Anything

문제 ACM-ICPC 대회의 대회장은 R행 C열의 직사각형 형태로 좌석이 배치되어 있다. 대회가 시작하기 전에는 참가자들이 아무것도 만지면 안 되기 때문에 진행자는 'Do not touch ANYTHING!!!'을 연신 외친다. 하지만, 진행자가 성대결절에 걸리면서 'Do not touch ANYTHING!!!'을 외칠 수 없는 처지가 되었다. 따라서 주최측은 CCTV를 설치하여 참가자들을 감시하려고 한다. 이때, 각 CCTV는 N행 N열의 직사각형 영역의 좌석을 촬영할 수 있다. 모든 좌석을 전부 촬영하도록 CCTV를 배치할 때, 최소 몇 개의 CCTV가 필요할까? 입력 첫 번째 줄에 좌석의 세로 크기, 가로 크기 R, C와 한 대의 CCTV가 수용할 수 있는 범위 N이 주어진다. (1 ≤ R, C, ..

BOJ(백준) 2022.02.26

[C언어] 백준 - 10250 ACM 호텔

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

BOJ(백준) 2022.02.26

[C언어] 백준 - 1085 직사각형에서 탈출

문제 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 x, y, w, h가 주어진다. 출력 첫째 줄에 문제의 정답을 출력한다. 너비가 w, 높이가 h인 직사각형이 있고, (x,y)에서 직사각형의 변까지의 최솟값을 구하는 문제이다. 비교할 수는 총 4개가 되겠다. x, y, w-x, h-y 단순히 4개의 값을 구해 비교하면 될 것 같다. #include int main(void) { int x, y, w, h; scanf("%d%d%d%d", &x, &y, &w, &h); int m = (x < y ? x : y) < ..

BOJ(백준) 2022.02.23

[C언어] 백준 - 2920 음계

문제 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8부터 1까지 차례대로 연주한다면 descending, 둘 다 아니라면 mixed 이다. 연주한 순서가 주어졌을 때, 이것이 ascending인지, descending인지, 아니면 mixed인지 판별하는 프로그램을 작성하시오. 입력 첫째 줄에 8개 숫자가 주어진다. 이 숫자는 문제 설명에서 설명한 음이며, 1부터 8까지 숫자가 한 번씩 등장한다. 출력 첫째 줄에 ascending, descending, mixed 중 하나를 출력한다. #include int main..

BOJ(백준) 2022.02.23

[제 24회 해킹캠프 CTF] delicious cookie Write Up

2022년 24회 해킹캠프 CTF에서 출제했던 delicious cookie 문제에 대한 write up입니다. 문제에 들어가면 다음과 같은 화면이 보입니다. 소스코드를 보면 주석으로 제공된 힌트를 확인하실 수 있습니다. chocolate is better than cookie. cookie에서 눈치채신 분들이 계실 것 같습니다. 해당 웹사이트의 쿠키를 확인하시면 dessert라는 이름의 쿠키에 cookie라는 값이 들어가 있는 걸 확인하실 수 있습니다. 해당 값을 chocolate으로 변경해보겠습니다. 필자는 cookie editor를 사용해 변경하였습니다. 새로고침하면 화면에는 아무 일도 일어나지 않습니다. 대신 소스코드를 확인하면 주석이 하나 더 생긴 것을 확인할 수 있습니다. candy is be..

[Git Desktop] 생활코딩 Git1 강의 (깃 입문강의)

생활코딩 Git1 재생목록 Git1 - 1. 수업소개 이 강의는 깃을 알려주는 게 아니라 구경시켜주는 강의로써 깃이 어떤건지 가볍게 들어보면 좋을 듯 하다. Git1 - 2. git을 구경합시다! 깃의 세가지 목적 1. 버전관리 2. 백업 3. 협업 Git1 - 3.1.git의 목적 1 - 버전관리 1 버전관리의 필요성 작업을 하다 보면 이전으로 돌아가야 할 때가 있다. 그럴 때마다 파일을 따로 저장하는 건 비효율적이다. 특히 코드와 파일이 많은 경우는 더 그렇다. 작업이 달라질 때마다 어떤 것을 수정했는지, 언제 수정했는지 기록할 수 있는 도구가 버전관리 시스템인 깃이다. Git1 - 3.2.git의 목적 1 - 버전관리 2 깃에서 지정경로의 새 repository를 만들면 지정한 폴더 안에 .git이..

IT/Git 2022.02.07

[C언어] 백준 18108 - 1998년생인 내가 태국에서는 2541년생?!

문제 ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국은 불멸기원(佛滅紀元), 즉 석가모니가 열반한 해를 기준으로 연도를 세는 불기를 사용한다. 반면, 우리나라는 서기 연도를 사용하고 있다. 불기 연도가 주어질 때 이를 서기 연도로 바꿔 주는 프로그램을 작성하시오. 입력 서기 연도를 알아보고 싶은 불기 연도 y가 주어진다. (1000 ≤ y ≤ 3000) 출력 불기 연도를 서기 연도로 변환한 결과를 출력한다. 예제입력1 2541 예제출력1 1998 예제입출력을 보면 알겠지만 불기 연도와 서기 연도의 차이는 543이다. y입력을 받고 543을 ..

BOJ(백준) 2022.01.26

[C언어] 백준 - 1차원 배열(1546, 8958, 4344)

백준 1546 - 평균 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오. 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다. 첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값..

BOJ(백준) 2022.01.24

[C언어] 백준 2292 - 벌집

문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. 각 층별 방 개수를 보면 (이웃한 방을 묶어 층으로 표현했다.) 1 : 1개 2~7 : 6개 8~19 : 12개 20~37 : 18개 ...

BOJ(백준) 2022.01.24