본문 바로가기

Algorithm/Implementation

(750)
(C++) - 프로그래머스(위클리 챌린지) : 3주차 https://programmers.co.kr/learn/courses/30/lessons/84021 코딩테스트 연습 - 3주차 [[1,1,0,0,1,0],[0,0,1,0,1,0],[0,1,1,0,0,1],[1,1,0,1,1,1],[1,0,0,0,1,0],[0,1,1,1,0,0]] [[1,0,0,1,1,0],[1,0,1,0,1,0],[0,1,1,0,1,1],[0,0,1,0,0,0],[1,1,0,1,1,0],[0,1,0,0,0,0]] 14 [[0,0,0],[1,1,0],[1,1,1]] [[1,1,1],[1,0,0],[0,0,0]] 0 programmers.co.kr bfs를 이용한 구현이었습니다. 📕 풀이방법 크게 해야할 일은 다음과 같습니다. 1. game_board에서 빈 곳 찾기, 찾았다면 모양 알아..
(Python) - 백준(BOJ) 20499번 : Darius님 한타 안 함? https://www.acmicpc.net/problem/20499 20499번: Darius님 한타 안 함? 그가 「진짜」이면 gosu, 「가짜」이면 hasu를 출력한다. www.acmicpc.net if문을 써보는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 문자열을 입력받아 '/'단위로 split한 뒤 s에 저장합니다. 그 후 s의 각 원소를 int로 형변환해서 k, d, a에 저장합니다. 📔 정답출력 k + a < d or d == 0 이면 hasu, 아니면 gosu를 출력하면 됩니다. 📕 Code s = input().split('/') k = int(s[0]) d = int(s[1]) a = int(s[2]) if(k + a < d or d == 0) : print("hasu") else :..
(C++) - 프로그래머스(2020 KAKAO BLIND RECRUITMENT) : 괄호 변환 https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 재귀를 문제설명대로 구현하는 문제였습니다. 📕 Code #include using namespace std; bool isRightBracket(string s){ stack st; if(s == "" || s[0] == ')') return false; for(int i = 0; i < s.size(); i++){ if(s[i] == '(') st.push(s[..
(C++) - 백준(BOJ) 1952번 : 달팽이 https://www.acmicpc.net/problem/1952 1952번: 달팽이2 M줄 N칸으로 되어 있는 표 위에, 달팽이 모양으로 선을 그리려고 한다. 위의 그림은 M=5, N=3의 예이다. 이제 표의 왼쪽 위 칸(ㅇ)에서 시작하여, 오른쪽으로 선을 그려 나간다. 표의 바깥 또는 이미 www.acmicpc.net 구현문제였습니다. 📕 풀이방법 📔 입력 및 초기화 1행 1열부터 시작한다는 의미로 curR = 1, curC = 1로 저장합니다. 이 후 지나온 길을 다시가지 않기 위해 2차원 배열 ck를 선언합니다. 📔 풀이과정 그리기가 끝나는 시점은 방향을 바꾼 후 그 방향으로 갔을 때에도 이미 그린 선인 경우입니다. 1. 현재방향 dir에 대해 curR, curC를 갱신합니다. 2. 벽에 부딪히거..
(C++) - 백준(BOJ) 17143번 : 낚시왕 https://www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. www.acmicpc.net 구현 문제였습니다. 📕 풀이방법 구조화, 갱신 시점을 꼼꼼히 처리해줘야합니다. 📔 입력 및 초기화 1. 상어의 정보를 가지고 있는 구조체 Shark를 선언합니다. 2. 각 상어의 정보를 가지고 있을 vector 변수 shark를 선언합니다. m을 입력받은 후 resize해줍니다. 3. 낚시왕의 좌표를 저장할 구조체 King을 선언합니다. 이에 해당하는 변수는 fishKing입니..
(C++) - 프로그래머스(위클리 챌린지) : 2주차 https://programmers.co.kr/learn/courses/30/lessons/83201 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr 단순 구현문제였습니다. 📕 풀이방법 📔 풀이과정 1. 한 열에 대해 최댓값, 최솟값을 찾습니다. 2. 중복 여부를 확인하기 위해 최댓값, 최솟값들의 개수를 각각 세줍니다. 3. 다시 한 열에 대해 최소 또는 최댓값이 유일하다면 sum에 더하지 않고 평균을 구할 때도 나누는 인원수에서 1을 제해야합니다...
(Rust) - 백준(BOJ) 1000번 : A + B https://www.acmicpc.net/problem/1000 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net a, b를 입력받고 a+b를 출력하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 한 줄의 문자열을 입력받습니다. 📔 풀이과정 numbers에 공백을 제거하고 숫자만 collect해서 담습니다. 📔 정답출력 문자열 형태의 number_a, number_b의 합을 출력합니다. 📕 Code use std::io; fn main() { let mut input_number = String::new(); io::stdin().read_line(&mut input_number) .expect("Falied to read l..
(Rust) - 백준(BOJ) 2557번 : Hello World https://www.acmicpc.net/problem/2557 2557번: Hello World Hello World!를 출력하시오. www.acmicpc.net PS의 국룰 hello world 출력하기였습니다. 📕 Code fn main() { println!("Hello World!") }