728x90

전체 글 260

[백준 1918 - Java] 후위 표기식

https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 문제 수식은 일반적으로 3가지 표기법으로 표현할 수 있다. 연산자가 피연산자 가운데 위치하는 중위 표기법(일반적으로 우리가 쓰는 방법이다), 연산자가 피연산자 앞에 위치하는 전위 표기법(prefix notation), 연산자가 피연산자 뒤에 위치하는 후위 표기법(postfix notation)이 그것이다. 예를 들어 중위 표기법으로 표현된 a+b는 전위 표기법으로는 +ab이고, 후위 표기법으로..

[백준 1935 - Java] 후위 표기식2

https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 문제 후위 표기식과 각 피연산자에 대응하는 값들이 주어져 있을 때, 그 식을 계산하는 프로그램을 작성하시오. 입력 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이는 100을 넘지 않는다) 그리고 셋째 줄부터 N+2번째 줄까지는 각 피연..

[Flask] virtualenv 와 flask 설치

서버를 구현하는 데에 있어서 JSP 또는 node.js를 사용하는 경우가 많은데요. 저는 그 두 가지보다 훨씬 더 간단하게 서버를 만들 수 있는 flask를 이용해서 서버를 만들어 보려고 합니다. flask를 써보고 든 생각은 서버 구축이 이렇게 간단해도 되는 것인가...? 하는 것이었습니다,, Flask란? python으로 작성된 마이크로 웹 프레임워크로 Werkzeug 툴킷과 Jinja2 템플릿 엔진에 기반을 두고 있습니다. 특별한 도구나 라이브러리가 필요없이 python만 있으면 편하게 사용이 가능하기 때문에 마이크로 프레임 워크라고 불리는 것입니다. 1. 가상 환경 (virtualenv) 실행 저는 현재 flask 로 구현하려는 서버에서 NLP 모델을 실행해야 하기 때문에 해당 모델이 돌아가는데 ..

[네트워크] DNS 와 Round Robin / 부하 분산

DNS (Domain Name System) 우리는 보통 네이버에 접속할 때 naver.com 이라는 영문 URL을 사용해서 접속합니다. 하기만 기본적으로 접속을 위해선 URL은 IP주소를 통해 연결되어야 합니다. DNS 는 문자로 된 도메인 이름과 실제 IP 주소를 확인해 변환할 수 있는 시스템입니다. 만약 DNS 서버가 없었다면 어떤 사이트에 접속할 때 123.45.67.89 이런 식의 IP주소를 외워둬야 하게 되겠죠... DNS 과정 1. DNS Query DNS 서버에서 도메인 이름에 해당하는 IP 주소를 요청하여 받아옵니다. 이때 DNS 서버에 접속하는 사용자에 대해 Round Robin 방식을 이용해 IP를 할당하게 됩니다. 2. IP communication IP 주소를 받아오면 사용자는 리..

[SWEA 2105 - Java] 디저트카페

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 오른 아래와 왼 아래 이동 횟수들만 고려해 전부 확인해서 문제를 해결했습니다. 각각의 횟수에 따라서 위쪽 방향에 해당하는 이동들을 하면서 디저트집이 겹치는 지를 확인해주면 되는 문제입니다. 디저트집이 겹치는지 여부는 HashSet을 사용하면 됩니다. import java.util.*; public class Solution { static int N; static int[][] map; static int answer; static int[] moveR = {1, 1, -1, -1}; static int[] moveC = {1, -1, -1, 1}; stat..

[SWEA 4008 - Java] 숫자 만들기

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 완전 탐색을 통해서 전부 확인하여 풀이가능한 문제입니다. 저는 재귀를 이용해서 완전탐색을 구현했습니다. 연산자를 차례로 하나씩 추가하면서 재귀를 호출합니다 N-1개 모두 추가한 후엔 해당 수식을 통해 나오는 값을 계산합니다. 계산한 값을 가지고 최대 최소를 업데이트합니다. 최댓값과 최솟값의 차를 출력합니다. import java.util.Scanner; public class Solution { static int N; static int answer, minN, maxN; static int[] operator, numbers, makeSik; public..

[SWEA 5656 - Java] 벽돌 깨기

https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 완전탐색과 BFS를 적절히 이용하면 되는 문제입니다. 적용되는 알고리즘 자체는 정말 간단하지만 그를 구현하는게 골치아팠습니다. 완전탐색을 이용하기 때문에 재귀로 구현하였습니다. 다음 재귀가 호출되는 것은 다음 구슬을 벽돌에 쏘는 경우 입니다. 구슬을 쏘는 경우에 대해선 완전 탐색을 하고 그 안에서 연쇄적으로 벽돌이 파괴될 수 있으므로 이는 BFS를 사용하였습니다. 현재 구슬이 맞추는 벽돌의 좌표를 큐에 넣고 BFS를 시작합니다. 현재 위치와 함께 깨지는 벽돌의 숫자가 1보다 큰 경우엔 ..

[SWEA 5658 - Java] 보물상자 비밀번호

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 우선 숫자들을 입력받는 차례대로 LinkedList에 저장합니다. 회전은 0회~(N/4-1)회 까지 확인해야합니다. 그 이상의 회전은 동일한 패턴이 되기 때문입니다. 각각의 회전 상태에 대해서 N/4개 씩 (한 변에 위치하는 숫자의 개수) 끊어서 10진수 변환을 하여 HashSet에 저장합니다. (HashSet을 사용하는 이유는 중복을 피하기 위해서 입니다) 1칸 회전을 위해서 LinkedList의 맨 마지막 값을 뽑아서 LinkedList의 맨앞에 넣어줍니다. 모든 회전에 대해 완료한 후 HashSet을 LinkedList로 변환한 후 내림차순으로 정렬합니..

[SWEA 5644 - Java] 무선 충전

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 문제에 나온대로 차례로 처리하면서 풀면되는 문제입니다. 입력을 모두 받은 후에 현위치 부터 그 위치에서 충전 가능한 A와 B의 합의 최대값을 구합니다. 그리고 입력 받은 대로 다음 위치로 이동시키면서 매 위치마다 최대 충전 값을 구해야 합니다. 최대 충전을 구하는 것은 함수를 새로 생성해서 구현했습니다. 현 위치와 각각의 충전기위 위치와의 거리를 확인하고 충전기가 커버 가능한 거리에 있으면 A와 B각각에 대해 배열을 하나 생성해 해당 충전기로 충전이 가능하다는 표시를 해줍니다. 또한 충전 가능한 충전기의 수를 A, B 각각에 대해 세줍니다. 만약 A와 B모두..

[SWEA 4012 - Java] 요리사

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 그냥 모든 경우의 수를 확인하면 되는 간단한 문제입니다! 첫 번째 재료부터 A요리 또는 B요리에 추가하면서 재귀를 호출하여 마지막 요리까지 모두 추가한 후에 시너지의 차를 계산하여 그 시너지 차의 최소를 출력하면 되는 문제입니다. import java.util.Scanner; public class Solution { static int N; static int[][] matrix; static int[] foodA; static int[] foodB; static int answer; public static void main(String[] args) {..

728x90
반응형