전체 글 17

[백준 문제 풀이] 1193번 : 분수찾기

https://www.acmicpc.net/problem/1193접근 방법 자체를 생각할 수 없어서 인터넷 검색으로 풀게 된 문제다. 그래도 이해한 내용을 다시 정리하고자 한다.단순히 대각선으로 읽어오는 것도 아니고, 지그재그로 읽어온다고 한다..즉, 짝수번째 지그재그에서는 분자는 커지고 분모는 작아진다.또, 홀수번째 지그재그에서는 분자는 작아지고 분모는 커진다.또 하나의 특성? 당연한 이유?가 있는데, 1부터 하나씩 값을 올리며 수를 빼며 -가 되기 전까지 반복하면 현재 지그재그의 위치를 알 수 있다.ex) 11-1 -> 0-2 -> 8-3 -> 5-4 -> 1, 11번은 5번째줄 1번째에 있음.또한 이 특성으로 총 뺀 횟수 +1 이 줄의 위치가 되는 것도 알 수 있다.말로 설명하니까 더 어려운 것 같..

Programming/C++ 2025.07.28

[백준 문제 풀이] 10818번 : 최소, 최대

https://www.acmicpc.net/problem/10818C++은 처음 써보기에, 또 아직 코딩 실력은 부족하기에 아주 쉬운 문제로 해보자.. using namespace std;// std라는 네임스페이스에 속한 정의들은 네임스페이스 이름을 붙이지 않아도 사용할 수 있음.// 즉, std:: 생략 가능#include // C++의 표준 입출력 클래스가 정의되어 있는 헤더파일// C언어는? int main(){ int num; std::cin >> num; // 몇개의 수를 입력받을건지 int low; // 최소 int high; // 최대 // int num2[1000000] = {0}; // 문제 내에서 지정한 최대 입력 범위. int num2[num..

Programming/C++ 2025.07.24

[백준 문제 풀이] 7513 : 준살 프로그래밍 대회

https://www.acmicpc.net/problem/7513대략 한달전에 풀어봤던 문제인데, 동적할당을 딱히 사용하지 않고 일단 완성을 목표로 막 만들었던 코드다.for문에 대해 이해하기 정말 좋은 문제라고 생각한다.다른 사람들 코드를 보니 입력을 받고 바로 출력을 해주는 방식도 있던데, 코드의 길이를 줄이는 데 도움이 될 것 같다.#include int main(){ int testcase; int user[10]; char user_password[10][50][6]; int pinfo; int pnum[10][200]; int pindex[10][200][10]; scanf("%d",&testcase); for(int scenario = 0; scen..

Programming/C 2025.07.23

파이썬 멘토링[4] - 백준 10872번, 15596번, 계산기 프로그램

10872번 - 팩토리얼 15596번 - 정수 N개의 합 메모리가 말도 안되게 치솟는 걸 볼 수 있다.. 계산기 프로그램 두 수, 부호를 받아 함수로 넘겨주었다. 각 부호를 판별하여 리턴값을 다르게 해주었고, 0 입력시 break 를 통해 무한반복에서 빠져나오도록 if문 하나를 집어넣어줬다. 잘 실행 되는 것을 확인할 수 있었다.

파이썬 멘토링[2] - 리스트, 딕셔너리, 튜플,세트

리스트, 딕셔너리, 튜플, 세트 등 모두 한번에 여러개의 자료를 담을 수 있는 C언어의 "배열" 기능을 담당한다. 하지만 각각의 기능과 쓰임새, 사용법이 다르다. 리스트 대괄호 [ ] 로 정의를 한다. 입력된 순서가 유지된다. 어떤 자료형도 저장이 가능하다. 1개의 자료도 리스트로 만들 수 있다. a.append(), a.sort(), a.count() 등의 리스트 관련 함수가 있다. 튜플 소괄호 ( ) 로 정의를 한다. 리스트의 값은 변동시킬 수 있으나, 튜플은 그럴 수 없다. 1개의 요소만을 가질 때 뒤에 콤마를 붙여야한다 튜플을 만들 때 괄호 생략이 가능하다. 딕셔너리 중괄호 { } 로 정의를 한다. 키와 값을 쌍을 요소로 가지는 자료형이다. 키로 빠르게 값을 찾을 수 있다 -> 해시테이블 구조 인..

SCP 동아리 C언어 5주차 과제

옛날에는 while 문이 훨씬 편하다고 생각했는데 for문이 깔끔하게 내용을 보여주는 것 같아서 요즘에는 for문을 더 선호하게 되었다. scanf 함수의 경우 공백이 나오면 입력을 멈추기에... %[\n]s 를 사용하여 \n 을 입력받을 때까지 scanf 함수가 진행되도록 하였다.. 이에 대해 전혀 모르고 있었기에 해당 문제의 정답을 구글링하다가 알게된 사실이었다.. 이 문제는 생각보다 쉬웠다... 아스키코드에서 알파벳 소문자의 구간을 찾아 응용하여 풀었다.

리눅스 멘토링 과제 ( 워게임 17 → 18 ~ 20 → 21 )

레벨에 들어가면 두개의 파일이 있다. 두 파일의 차이점을 찾아 패스워드를 얻을 수 있다고 한다. 두 파일을 비교해주는 diff 명령어와 차이점을 출력해주는 -c 옵션을 통해 password.new 에서 패스워드를 얻을 수 있었다. 해당 레벨에 들어가면 이 문구와 함께 연결이 바로 종료된다. ssh 명령어 뒤에 따옴표를 이용하여 접속후 바로 명령어가 실행되도록 하여 readme 파일에 있는 패스워드를 얻을 수 있었다. 해당 레벨에 들어가면 banit20-do 라는 파일이 있다. 실행을 시켜보니 사용방법이 나온다. bandit20 유저의 권한으로 명령어를 실행해주는 파일인 것 같다. 해당 경로에 비밀번호가 있다고 하였으니 사용방법을 참고하여 명령어를 실행하였더니 패스워드를 얻을 수 있었다. suconnect..