개발자 바다의 파도

개발의 무인도에 갇혔다

전체 글 210

25314 - 코딩은 체육과목 입니다 (C++)

문제 - 오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ 책을 열심히 읽었던 혜아는 간단히 두 수를 더하는 코드를 칠판에 적었다. 코드를 본 면접관은 다음 질문을 했다. "만약, 입추력이 N바이트 크기의 정수라면 프로그램을 어떻게 구현해야 할까요?" 혜아는 책에 있는 정수 자료형과 관련된 내용을 기억해 냈다. 책에는 long int는 4바이트 정수까지 저장할 수 있는 정수 자료형이고 long long int는 8바이트 정수까지 저장할 수 있는 정수 자료형이라고 적혀 있었다. 혜아는 이런 생각이 들었다. "int 앞에 long을 하나씩 더 붙일 때마다 4바이트씩 ..

코딩 기초 트레이닝 - 24일차 (C++)

24일차 - 조건문 활용, 반복문 활용, 이차원 리스트 (배열) 1번) 커피 심부름 이번 문제는 백터 order에서 백터 값에 "latte"를 찾으면 answer에 5000을 더하고, 없으면 4500을 더하면 됩니다. find()함수를 이용해서 11번줄에 있는 if문처럼 백터 값에 "latte"가 있는지 확인을 하면서 풀면 매우 쉽게 풀 수 있습니다. 2번) 그림 확대 이번 문제는 백터 picture을 정수 k배 만큼 늘려주면 되는 문제입니다. 이는 for문으로 쉽게 풀 수 있습니다. 10번줄 for문에서 picture의 크기로 조건문을 설정하고, 12번줄 for문에서는 picture[i]의 크기로 조건문을 해줍니다. 이후 14번 for문에서 string temp 값으로 picture[i][j] 값을 받..

25304 - 영수증 (C++)

문제 - 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것이 맞는지 확인해보려 한다. 영수증에 적힌, 1) 구매한 각 물건의 가격과 개수, 2) 구매한 물건들의 총 금액 을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자. 입력 - 첫째 줄에는 영수증에 적힌 총 금액 X가 주어진다. 둘째 줄에는 영수증에 적힌 구매한 물건의 종류의 수 N이 주어진다. 이후 N개의 줄에는 각 물건의 가격 a와 개수 b가 공백을 사이에 두고 주어진다. 출력 - 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하면 ..

코딩 기초 트레이닝 - 23일차 (C++)

23일차 - 조건문 활용 1번) 부분 문자열 이번 문제는 부분 문자열을 찾는 문제입니다. #include 으로 find()함수를 이용하면 쉽게 풀지만 저만의 방식으로 풀어봤습니다. 12번줄 for문으로 시작해서 str1가 str2의 일부분인지 확인을 합니다. 만일 첫 문자가 같으면 16번 줄에 있는 for문으로 str1의 길이대로 계속 같는지 확인을 합니다. 만일 같으면 answer을 1로 설정하고 break, 아니면 temp과 isSame 값을 초기화합니다. 2번) 꼬리 문자열 이번 문제는 전에 풀은 문제 '부분 문자열'을 string에서 백터 안에서 찾는 걸로 변경된 문제입니다. 이 문제 또한 #include 에 있는 find() 함수를 이용하면 쉽게 풀 수 있지만 저만의 방식으로 풀어봤습니다. 백터..

코딩 기초 트레이닝 - 22일차 (C++)

22일차 - 함수 (메서드), 조건문 활용 1번) 0 떼기 이번 문제는 가장 왼쪽에서 0이 있으면 제외하는 문제입니다. 9번 줄에 있는 for문에서 string n_str에 첫 인덱스부터 0인지 확인을 하고 0이면 다음 인덱스, 만일 0이 아니면 그 인덱스 위치 값을 저장하고 break으로 끝납니다. 이후 22번 줄에 있는 for문에서 초기값을 정수 idx로 해서 string answer에 값을 삽입하면 됩니다. 2번) 두 수의 합 이번 문제는 생각보다 난이도가 있게 풀었습니다. 사실 string을 int로 변환 할 때 stoi() 함수를 쓰면 쉽게 풀 수 있습니다. 하지만 저는 stoi() 함수 없이 풀어보았습니다. 일단 중요한 것은 A와 B의 자릿수가 다르면 string으로 합칠 때 안 정확해집니다...

10950 - A + B - 3 (C++)

문제 - 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오 입력 - 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다 (0 < A, B < 10) 출력 - 각 테스트 케이스마다 A+B를 출력한다 풀이 - 간단하게 for문을 돌려서 A와 B를 합쳐서 값을 출력하면 됩니다. 코드 복붙 주소 - https://github.com/ResToEons/BaekJoonAlgorithm/tree/main/3%20-%20%EB%B0%98%EB%B3%B5%EB%AC%B8/02%20-%20A%20%2B%20B%20-%203%20(10950)

코딩 기초 트레이닝 - 21일차 (C++)

21일차 - 함수 (메서드) 1번) 뒤에서 5등 위로 이번 문제는 일단 10번줄 for문에서 백터 num_list을 정렬을 해줍니다. 이후 23번줄 for문에서 초기값을 5로 설정해서 num_list 인덱스 값을 백터 answer에 값을 삽입합니다. 2번) 전국 대회 선발 고사 이번 문제는 백터 rank와 백터 attendance 값을 보면서 값을 구합니다. 여기서 랭크를 오름차순으로 보는데, rank에 있는 인덱스 위치 값이 attendance 인덱스 값이 false이면 다음 rank 값을 찾습니다. 만일 true이면 첫 번째 true인 경우에는 그 인덱스 값을 10000과 곱한 다음 answer에 더한다. 두 번째는 경우에는 100과 곱하고 answer에 더하고 마지막인 세 번째 경우에는 그냥 인덱스..

2739 - 구구단 (C++)

문제 - N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. 입력 - 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다. 출력 - 출력형식과 같게 N*1부터 N*9까지 출력한다. 풀이 - 코드 복붙 주소 - https://github.com/ResToEons/BaekJoonAlgorithm/tree/main/3%20-%20%EB%B0%98%EB%B3%B5%EB%AC%B8/01%20-%20%EA%B5%AC%EA%B5%AC%EB%8B%A8%20(2739)

코딩 기초 트레이닝 - 20일차 (C++)

20일차 - 함수 (메서드) 1번) 배열의 길이를 2의 거듭제곱으로 만들기 이번 문제는 2의 거듭제곱을 만드는 것이 핵심입니다. 일단 몇 승까지 해야하는지 알아야 하니 승을 구하는 식부터 구합니다. 만일 승을 구할 때 백터 arr 크기가 1이면 2^0은 1이니 그냥 1로 값을 넘기면 됩니다. 1보다 큰 경우에는 19번에 있는 while문에서 크기가 백터 arr보다 클 때까지 size를 2로 계속 곱해줍니다. 이것이 거듭제곱으로 연산 해주는 방법입니다. 이후 24번 줄에서 arr와 size의 차를 구한 다음 28번 for문에서 answer에 있는 남은 공간에 0을 삽입해주면 됩니다. 2번) 배열 비교하기 이번 문제는 처음에는 백터 arr1와 백터 arr2의 크기를 비교를 하고, 크기가 같은 경우 arr1의..