백준 10995번 별찍기 - 20 C++ 리뷰나머지를 활용한 문제 문제 풀이입력받은 n의 수만큼 for문을 개행해 준다.만약 현재 for문의 실행 횟수가 짝수번째 일 경우 "* "를 n개만큼 출력해 준다.반대로 홀수번째 일 경우 " *"를 n개만큼 출력해 준다. 참고 사항for문에서 i값을 적절히 배분하면 된다. 정답 코드#include using namespace std;int main() { int n, i, j; cin >> n; for (i = 0; i 알고리즘 공부/C++ 2024.07.14
백준 2921번 도미노 C++ 리뷰처음엔 문제가 이해가 안됐고, 이해가 된 후에는 점화식을 어떻게 세워야 할지 고민이 됐다. 정답률이 어떻게 80%가 넘는거지? 문제 풀이경우의 수를 생각하면 도미노 한칸은 i, 다른 도미노 한칸은 j라고 생각해 보자i도미노가 0 ~ n까지 들어올때 j도미노는 i부터 n까지 들어올 수 있다.예를 들어 n이 3이라면 i도미노가 0일때 j도미노는 0~3까지 들어올 수 있다.i도미노가 1일때 j도미노는 1~3까지 들어올 수 있다. 이를 n까지 반복한다.for문이 종료되면 최종 정답을 출력해 준다. 참고 사항n 1x011 y001 2x012122 y000112 3x0123123233 y0000111223.. 알고리즘 공부/C++ 2024.07.14
백준 10178번 할로윈의 사탕 C++ 리뷰나머지와 몫에 관련한 문제 문제 풀이각 테스트 케이스마다 사탕의 개수를 형제의 수를 나눈 몫과 나머지를 출력해주면 된다. 참고 사항없음 정답 코드#include using namespace std;int main() { int t, c, v, i, ans, piece; cin >> t; for (i = 0; i > c >> v; ans = c % v; piece = c / v; cout 알고리즘 공부/C++ 2024.07.14
백준 2010번 플러그 C++ 리뷰정답률이 56%던데 왜지? 싶은 문제 문제 풀이플러그는 기본적으로 1개가 있다, sum 변수를 1로 초기화 해준다.각 멀티탭의 구멍 갯수에서 1만큼 빼주고 sum변수에 더해준다.최종 sum 변수가 컴퓨터를 연결할 수 있는 구멍의 개수가 된다. 참고 사항멀티탭에 또다른 멀티탭을 연결할 경우 현재 멀티탭의 구멍을 1개 쓰게 되므로 1만큼 빼주는 것 정답 코드#include using namespace std;int main() { int n, i, j; cin >> n; int sum = 1; for (i = 0; i > j; sum += j - 1; } cout 알고리즘 공부/C++ 2024.07.14
백준 9325번 얼마? C++ 리뷰수학, 사칙연산 문제 문제 풀이각 테스트 케이스마다 차량의 기본 가격에 옵션의 개수와 각 옵션의 가격을 곱한 값을 더해준 후 최종 가격을 출력 참고 사항없음 정답 코드#include using namespace std;int main() { int t, s, n, q, p, i, j; cin >> t; for (i = 0; i > s >> n; for (j = 0; j > q >> p; s += q * p; } cout 알고리즘 공부/C++ 2024.07.14
백준 10833번 사과 C++ 리뷰배열을 생성할 필요도 없는 문제였다. 문제 풀이학교의 개수 n개의 값을 받아오고, 정답을 출력할 변수를 0으로 초기화 해준다.학교의 개수만큼 for문을 개행해 사과를 학교로 나눈 나머지 값을 정답 변수에 추가해 준다.for문 종료 후 정답 변수를 출력해 주면 된다. 참고 사항학교와 사과는 1이상의 수 이므로 0으로 나누어질 염려는 할 필요 없다. 정답 코드#include #include using namespace std;int main() { int n; cin >> n; int ans = 0; for (int i = 0; i > s >> a; ans += a % s; } cout 알고리즘 공부/C++ 2024.07.14
백준 10984번 내 학점을 구해줘 C++ 리뷰c++에서 printf 를 사용한 첫번째 사례 문제 풀이각 테스트 케이스, 과목 수만큼 2중 for문을 개행해 준다.학점의 합과 소숫점의 합을 p1, p2 변수에 받아준다학점의 합과 소숫점의 합을 학점의 합으로 나눈 값을 소수점 1자리 까지 출력해 준다. 참고 사항학점마다 점수의 정도가 달라져야 한다. 예를 들어 2학점 문제 4.0과 3학점 문제 4.0은 값의 가치가 다르다.cout으로는 소숫점 자릿수 선택을 못하여 printf를 통해 출력해 주었다. 정답 코드#include #include #include using namespace std;int main() { int t, n, c; double g; cin >> t; for (int i = 0; i > n; int p1 = 0; doubl.. 알고리즘 공부/C++ 2024.07.13
백준 1213번 팰린드롬 만들기 파이썬 리뷰분명 더 최적화 하는 방법이 있겠지만... 노가다로 푼 것 같다. 문제 풀이알파벳 대문자를 딕셔너리로 초기화 해준 뒤 문자열을 참조하여 각 알파벳 개수를 최신화 해준다.딕셔너리의 value를 돌고 홀수인 값이 2개 이상일 경우를 체크해준다.정답을 출력할 빈 문자열을 초기화 해주고 딕셔너리 value의 반만큼만 문자열을 더해준다.이번엔 딕셔너리를 뒤집어서 남은 value만큼 문자열을 더해준다.홀수가 있었을 경우 문자열의 가운데에 홀수 알파벳을 넣어준다, 문자열 출력 참고 사항홀수가 두개 이상인 경우 팰린드롬을 만들 수 없다. 쏘리 한수딕셔너리를 for문으로 초기화 했다면 굳이 정렬을 하지 않아도 자동으로 된다.최종 문자열에 value를 더해줄때는 2로 나눈 몫만큼 추가해 줘야한다. (홀수 문자열 추가 .. 알고리즘 공부/파이썬(Python) 2024.07.12
백준 1120번 문자열 파이썬 리뷰브루트포스 알고리즘 (슬라이딩 윈도우) 문제 문제 풀이문자열 a, b를 받아오고 최소한의 차이를 나타낼 변수를 51로 설정한다. (문자열의 최대 입력이 50)문자열 a를 b의 각 부분에 이동하면서 차이의 개수를 계산한다.차이의 개수가 가장 적은 것을 min을 통해 비교하여 갱신해 준 뒤 최종적으로 출력 참고 사항없음 정답 코드a, b = map(str, input().split())diff = 51for i in range(len(b) - len(a) + 1): temp = 0 for j in range(len(a)): if a[j] != b[i + j]: temp += 1 diff = min(diff, temp)print(diff) 알고리즘 공부/파이썬(Python) 2024.07.12
백준 2635번 수 이어가기 파이썬 리뷰브루트포스 알고리즘 풀이 범위가 3만이라 시간초과는 나지 않았다. 문제 풀이주어지는 수를 받아오고 최대 길이와 최고로 긴 리스트를 체크할 변수를 초기화 해준다.두번째로 올 수를 1부터 n까지 수를 대입하여 각각의 경우의 수를 찾고 최대 리스트를 최신화 해준다.for문이 종료된 후 최적의 리스트의 길이와 리스트 출력 참고 사항없음 정답 코드n = int(input())max_len = 0best_lst = []for i in range(1, n + 1): current_lst = [n, i] while 1: temp = current_lst[-2] - current_lst[-1] if temp 알고리즘 공부/파이썬(Python) 2024.07.11
백준 5635번 생일 파이썬 리뷰휴 언어 폭을 넓히느라 제출 언어를 자꾸 착각한다. 문제 풀이입력값을 리스트로 받아온다.리스트를 년도, 월, 일 순으로 정렬한다.제일 끝 인덱스의 리스트내 이름과 제일 첫 인덱스의 리스트내 이름을 차례대로 줄을 바꿔 출력해 준다. 참고 사항정렬 시 key를 int로 바꿔준 후 정렬해 줘야 한다. 정답 코드n = int(input())lst = [input().split() for _ in range(n)]lst.sort(key=lambda x: (int(x[3]), int(x[2]), int(x[1])))print(lst[-1][0])print(lst[0][0]) 알고리즘 공부/파이썬(Python) 2024.07.11
백준 11098번 첼시를 도와줘! C++ 리뷰첫 C++ 백준 도전기... 파이썬이면 딕셔너리로 금방 풀겠는데 머리좀 잘 굴려야겠다. 문제 풀이현재 최대값과 새로 들어온 값을 비교해 현재 최대값 보다 현재 값이 크다면 최대 값을 최신화 해준다.최대값을 최신화 해주며 정답이 될 선수 이름을 별도로 저장해 준다.for문이 끝나고 정답 선수 이름을 출력해 준다. 참고 사항없음 정답 코드void q11098();#include #include using namespace std;int main() { q11098(); return 0;}void q11098() { // 백준 11098번 첼시를 도와줘! C++ int n, p, c; string name; cin >> n; for (int i = 0; i > p;.. 알고리즘 공부/C++ 2024.07.11
백준 2667번 단지번호붙이기 파이썬 리뷰얼추 BFS에 대해 감이 잡혀 가는 것 같다, 물론 아직 실버 문제지만.. 문제 풀이집 정보가 있는 2차원 배열, 방문 여부를 체크할 2차원 배열, 상하좌우를 방문할 방향 배열을 초기화 해준다.정답을 담을 빈 리스트와 2차원 배열을 탐색할 2중 FOR문을 개행해 준다.만약 배열 탐색 중 2차원 배열의 값이 1이고 방문 기록이 없다면 해당 좌표를 기준으로 bfs를 실행해 준다.함수 호출 시 단지 내 집의 개수는 1개이고 bfs실행 중 큐에 인자가 들어갈 때마다 1개씩 더해준다.각 단지마다 집의 개수를 출력해 준 후 리스트로 저장한다. 최종적으로 리스트의 길이와 요소를 정렬 후 출력 참고 사항오름 차순으로 출려기익 때문에 꼭 정렬을 해줘야 한다. 정답 코드def q2667(): # 백준 2667.. 알고리즘 공부/파이썬(Python) 2024.07.10
백준 2178번 미로 탐색 파이썬 리뷰첫 2차원 배열 BFS 문제 도전이었다.. 뭔가 알것같으면서도 애매한 이 느낌 문제 풀이BFS를 사용하기 위해 큐를 임포트 해준다.2차원 배열을 받아오고 별개로 방문을 체크해줄 배열을 False로 초기화 해준다.4방향으로 움직일 수 있으므로 방향을 나타내줄 리스트도 초기화 해준다.bfs함수를 정의해 준다. 함수 인자로는 2차원 배열 리스트, 현재 x, y좌표 및 거리를 나타낼 튜플while루프 실행 전 시작 위치값을 지정해 준다. x, y는 각각 0, 거리는 1움직일 수 있는 위치라면 해당 위치를 방문하여 각 거리를 계산해 준다.x, y가 각각 n - 1, m - 1 위치에 도달하게 될 경우 거리를 리턴해준다. 참고 사항이동 조건을 만족하여 큐에 추가할때 해당 위치를 미리 방문처리 해줘야 한다. 안그.. 알고리즘 공부/파이썬(Python) 2024.07.10
백준 31883번 FA수의 진 파이썬 리뷰신호등과 육교를 통해 최대한 빨리 강의실에 도착 하는 구현 문제 문제 풀이입력 데이터와 시간을 나타낼 변수를 0으로 초기화 해준다.리스트의 각 요소를 참조하여 신호등의 빨간불과 초록불의 시간을 더해 사이클을 만들어 준다.현재 시간을 사이클로 나눈 나머지가 현재 신호등의 정보가 된다. blue라는 변수로 저장해 주었다.만약 blue가 초록불의 시간보다 적다면 현재는 초록불인 것이다.만약 blue가 초록불의 시간보다 적다면 현재는 빨간불인 것이다. 총 사이클에서 blue값을 빼준 뒤 i[0]에 더해준다.time에 육교와 횡단보도를 통한 이동 시간 중 더 적은 값을 더해준다. 참고 사항없음 정답 코드import sysn = int(sys.stdin.readline())lst = [list(map(int,.. 알고리즘 공부/파이썬(Python) 2024.07.09
백준 22966번 가장 쉬운 문제를 찾는 문제 C언어 리뷰처음 접해보는 구조체 문제, 파이썬이랑 비교하면 정말 오래 걸린다... 문제 풀이책 이름과 난이도를 갖는 구조체를 초기화 해준다. 이후 책 이름과 난이도를 구조체 배열로 초기화구조체를 참조하며 난이도가 가장 낮은 구조체를 찾아준 뒤 해당 구조체의 책 이름을 출력한다. 참고 사항구조체나 문자열의 배열의 크기를 미리 정해놔 주어야 하는게 익숙치 않다. 정답 코드void q22966();#include int main(void) { q22966(); return 0;}void q22966() { // 백준 22966번 가장 쉬운 문제를 찾는 문제 C언어 int n; scanf("%d", &n); typedef struct { char s[11]; .. 알고리즘 공부/C언어(C) 2024.07.09
백준 6778번 Which Alien? C언어 리뷰시간이 0.1초도 안걸리고 통과하였다. 신기 문제 풀이안테나와 눈의 개수를 각각의 변수로 받아준다.안테나가 3개 이상, 눈이 4개 이하인 경우 TroyMartian 출력안테나가 6개 이하, 눈이 2개 이상인 경우 VladSaturnian 출력안테나가 2개 이하, 눈이 3개 이하인 경우 GraemeMercurian 출력 참고 사항없음 정답 코드void q6778();#include int main(void) { q6778(); return 0;}void q6778() { // 백준 6778번 Which Alien? C언어 int antenna, eyes; scanf("%d", &antenna); scanf("%d", &eyes); if (antenna >= 3 .. 알고리즘 공부/C언어(C) 2024.07.09
백준 6749번 Next in line C언어 리뷰최하값과 중간값을 갖고 최대값을 구하는 문제 문제 풀이중간값을 2로 곱해준 뒤 최소값을 빼주면 최대값이 출력된다. 참고 사항없음 정답 코드void q6749();#include int main(void) { q6749(); return 0;}void q6749() { // 백준 6749번 Next in line int a, b; scanf("%d", &a); scanf("%d", &b); printf("%d", b * 2 - a);} 알고리즘 공부/C언어(C) 2024.07.09
백준 5522번 카드 게임 C언어 리뷰C언어 굉장히 빠르다! 문제 풀이5줄에 나누어 주어지는 정수를 모두 더한 뒤 출력해 준다. 참고 사항없음 정답 코드void q5522();#include int main(void) { q5522(); return 0;}void q5522() { // 백준 5522번 카드 게임 C언어 int ans = 0; for (int i = 0; i 알고리즘 공부/C언어(C) 2024.07.09
백준 5217번 쌍의 합 C언어 리뷰C언어가 얼른 익숙해 지면 좋겠다.. 파이썬으로 제출해버렸다 문제 풀이각 루프마다 숫자를 가져온 후 기본 폼을 실행시켜 준다.숫자가 3이상일 경우 1과 NUM - 1을 출력해 주고이후 2부터 첫번째 수가 더 작을 때까지 출력해 준다. 참고 사항FOR문을 마치고 줄바꿈을 1회 해주었다. 정답 코드void q5217();#include int main(void) { q5217(); return 0;}void q5217() { // 백준 5217번 쌍의 합 C언어 int n; scanf("%d", &n); while (n--) { int num; scanf("%d", &num); printf("Pairs for %d:", num); .. 알고리즘 공부/C언어(C) 2024.07.08