dev_beomgeun
꾸준하게 차근차근
dev_beomgeun
전체 방문자
오늘
어제
  • 분류 전체보기 (170)
    • 전공 (0)
      • 운영체제 (0)
      • 알고리즘 (0)
      • 자료구조 (0)
      • 데이터베이스 (0)
      • 네트워크 (0)
    • 개발 공부 (32)
      • 웹 (6)
      • 리눅스 (4)
      • 머신러닝 (1)
      • 스프링 (17)
      • Git (2)
      • AWS (2)
    • 개발 도서, 강의 (3)
      • 스프링 입문을 위한 자바 객체지향의 원리와 이해 (0)
      • 모든 개발자를 위한 HTTP 웹 기본 지식(김영한.. (2)
      • 스프링 부트와 AWS로 혼자 구현하는 웹서비스 (1)
    • 문제 풀이 (118)
      • 백준 알고리즘 (72)
      • 프로그래머스 알고리즘, SQL (38)
      • Hackerrank SQL (8)
    • 프로젝트 기록 (4)
      • 캡스톤 종합설계 (4)
      • 반려하루 프로젝트 (0)
    • 활동 기록 (12)
      • 네이버 부스트캠프 (7)
      • 취준 & 코테 (4)
      • 소프트웨어 마에스트로 13기 (1)
    • 이것저것 (1)

블로그 메뉴

  • 홈
  • 깃허브
  • 링크드인
  • 방명록

공지사항

인기 글

태그

  • HackerRank mysql
  • Hackerrank
  • c++
  • 일기
  • BFS
  • 회고
  • 반성
  • 그래프탐색
  • 부스트캠프
  • 네이버 부스트캠프
  • 프로그래머스
  • 백준
  • Baekjoon
  • 백준 DP
  • 스프링
  • 기록
  • dp
  • 프로그래머스 SQL
  • AI Tech
  • 서블릿

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dev_beomgeun

꾸준하게 차근차근

문제 풀이/백준 알고리즘

[baekjoon 17269] 이름궁합 테스트- 문자열, 구현 (C++)

2020. 12. 27. 17:44
728x90

www.acmicpc.net/problem/17269

 

17269번: 이름궁합 테스트

시윤이는 좋아하는 이성이 생기면 가장 먼저 이름궁합부터 본다. 이름궁합을 보는 방법은 간단하다. 먼저 이름을 알파벳 대문자로 적는다. 각 알파벳 대문자에는 다음과 같이 알파벳을 적는데

www.acmicpc.net

단순한 문자열, 구현 문제이다.

문자열에 익숙하지 않아서 연습을 해야겠다.

#include <iostream>
#include <vector>
using namespace std;

string name1, name2, sumName;
int size1, size2;
vector<int> num;
int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	int arr[26] = { 3, 2, 1, 2, 4, 3, 1, 3, 1, 1, 3, 1, 3, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1 };
	cin >> size1 >> size2;
	cin >> name1 >> name2;

	int minSize = size1 >= size2 ? size2 : size1;
	int maxSize = size1 >= size2 ? size1 : size2;
	string maxString = size1 >= size2 ? name1: name2;
	for (int i = 0; i < minSize; i++) {
		sumName += name1[i];
		sumName += name2[i];
	}
	for (int i = minSize; i < maxSize; i++) {
		sumName += maxString[i];
	}

	for (int i = 0; i < size1 + size2; i++) {
		int idx = sumName[i] - 'A';
		num.push_back(arr[idx]);
	}

	while (num.size() != 2) {
		vector<int> temp;
		for (int i = 0; i < num.size() - 1; i++) {
			int tempNum = num[i] + num[i + 1];
			temp.push_back(tempNum > 9 ? tempNum - 10 : tempNum);
		}
		num = temp;
	}
	if(num[0] == 0)
		cout << num[1] << "%";
	else
		cout << num[0] <<num[1]<< "%";
}

 

728x90
저작자표시 비영리 변경금지

'문제 풀이 > 백준 알고리즘' 카테고리의 다른 글

[baekjoon 11650] 좌표 정렬하기- 정렬 (C++)  (0) 2021.01.01
[baekjoon 1978] 소수 찾기- 소수, 에라토스테네스의 체 (C++)  (0) 2020.12.30
[baekjoon 14425] 문자열 집합- 문자열, map (C++)  (0) 2020.12.24
[baekjoon 14502] 연구소 - 그래프탐색(BFS,DFS), 브루트포스  (0) 2020.12.05
[baekjoon 1922] 네트워크 연결 - 최소 스패닝 트리(크루스칼, Union-Find)  (0) 2020.11.29
    '문제 풀이/백준 알고리즘' 카테고리의 다른 글
    • [baekjoon 11650] 좌표 정렬하기- 정렬 (C++)
    • [baekjoon 1978] 소수 찾기- 소수, 에라토스테네스의 체 (C++)
    • [baekjoon 14425] 문자열 집합- 문자열, map (C++)
    • [baekjoon 14502] 연구소 - 그래프탐색(BFS,DFS), 브루트포스
    dev_beomgeun
    dev_beomgeun
    백엔드 개발을 하며 얻은 지식과 경험을 공유합니다. 현재 카카오페이에서 백엔드 엔지니어로 일하고 있습니다.

    티스토리툴바